您的数组在您的帖子中创建错误。试试这个:
var days:Array = ["mon", "tues", "wed", "thurs", "fri"];
或者你也可以这样创建它,使用 Array 类的 push() 方法:
var days:Array = new Array();
days.push( 'mon');
days.push( 'tues');
days.push( 'weds');
days.push( 'thurs');
days.push( 'fri');
在您的帖子中跟踪数组的值:
trace( days[0] ); // returns "mon"
trace( days[1] ); // returns "tues"
trace( days[2] ); // returns "wed"
trace( days[3] ); // returns "thurs"
trace( days[4] ); // returns "fri"
数组的内容存储在数组的“索引”中。数组的索引总是从 0 开始。
数组有一个长度。空数组的长度为 0。如果数组中至少包含一项,则长度为 1,并随着您添加更多项而增加。要遍历您的数组以获取值,请执行以下操作:
for(var i:int = 0; i < days.length; i++)
{
trace( days[i] );
}
数组是任何编程语言的强大且必不可少的部分。您可以从数组中删除项目、添加项目、删除特定索引处的特定项目、按名称删除项目、组合数组等等。查看此link 并研究 Array 类的属性和方法,您会受益匪浅。一旦你掌握了如何操作 Array 的窍门,你将永远不会在没有它们的情况下生存!
有很多方法可以将按钮与特定的数组索引相关联。 Dr.Denis McCracleJizz 提供的答案是一种方式,尽管如果您像您所说的那样对 AS3 不熟悉,那么它可能会显得有些不知所措,因为它使用了您可能还不熟悉的几个概念。让我看看我是否可以简化一下,虽然这会使代码有点冗长:
mondayButton.addEventListener( MouseEvent.CLICK, onClickDayButton );
tuesdayButton.addEventListener( MouseEvent.CLICK, onClickDayButton );
function onClickDayButton( e:MouseEvent ):void
{
if( e.target.name == 'mondayButton')
{
trace( days[0] );
}
else if( e.target.name == 'tuesdayButton')
{
trace( days [1] );
}
// and so on...
}
如果您熟悉对象,您可以为每个按钮创建一个对象,该对象同时保存按钮和按钮 ID,并将它们存储在数组中:
var days:Array = ["mon", "tues", "wed", "thurs", "fri"];
var dayButtonArray:Array = new Array();
var mondayButtonObject:Object = new Object();
mondayButtonObject.button = mondayButton;
mondayButtonObject.id = 0;
dayButtonArray.push( mondayButtonObject );
var tuesdayButtonObject:Object = new Object();
tuesdayButtonObject.button = tuesdayButton;
tuesdayButtonObject.id = 1;
dayButtonArray.push( tuesdayButtonObject );
// and like above, the rest of the days here
// then loop through them and set the mouseEvent
for(var i:int = 0; i < dayButtonArray.length; i++)
{
dayButtonArray[i].button.addEventListener( MoouseEvent.CLICK, onClickDayButton );
}
// and the function each button calls to
function onClickDayButton( e:MouseEvent ):void
{
trace( days[ evt.target.id ] );
}
您可以通过完全跳过 days 数组并将与按钮关联的日期添加到 dayButtonArray 而不是 id 来进一步简化上面的对象方法:
var dayButtonArray:Array = new Array();
var mondayButtonObject:Object = new Object();
mondayButtonObject.button = mondayButton;
mondayButtonObject.day = "monday";
dayButtonArray.push( mondayButtonObject );
var tuesdayButtonObject:Object = new Object();
tuesdayButtonObject.button = tuesdayButton;
tuesdayButtonObject.day = "tuesday";
dayButtonArray.push( tuesdayButtonObject );
// and like above, the rest of the days here
// then loop through them and set the mouseEvent
for(var i:int = 0; i < dayButtonArray.length; i++)
{
dayButtonArray[i].button.addEventListener( MoouseEvent.CLICK, onClickDayButton );
}
// and the function each button calls to
function onClickDayButton( e:MouseEvent ):void
{
trace( evt.target.day );
}
现在变得像 Dr.Denis McCracleJizz 的 回答一样复杂。他的绝对值得一看。