1)我试图将34个按钮添加到一个数组(或矢量,我读的更有效)。每个按钮都被称为button1,button2 .... button34。这是我尝试接近它的方式,但似乎不可能使用下面的方法。我收到一个错误,说该按钮的名称未被识别。有谁知道为什么,或者知道更容易解决我的问题?
var vector: Vector. < MovieClip > = new Vector. < MovieClip > ();
var i = 1;
while (i <= 34) {
vector.push(button[i]); //This part does not work
i++;
}
2)其次,我正在尝试为所有按钮创建一个EventHandler。制作34个事件处理程序(和函数)真的很令人沮丧。是否有任何简单的方法来识别按下哪个按钮,这样我可以对分别按下的按钮(在EventHandler内)进行相同的更改?当您按下不同的按钮时,应该发生相同的事情,但仅限于按钮被按下了。
答案 0 :(得分:0)
1) 访问按钮[i]表示:按钮是一个集合,我访问'i'元素。如果按钮的名称是“button1”,则必须使用getChildByName获取它。
var vector: Vector. < MovieClip > = new Vector. < MovieClip > ();
var i = 1;
while (i <= 34)
{
vector.push( getChildByName( "button" + i) ); //This part does not work
i++;
}
2)您可以在eventHandler上使用,在其中您可以通过currentTarget属性访问发件人。例如,你可以在上面描述的while循环中附加事件监听器,并且在这个处理程序中你可以找到带有事件的名称,即(我假设该按钮是一个SimpleButton实例)
var vector: Vector. < MovieClip > = new Vector. < MovieClip > ();
var i = 1;
while (i <= 34)
{
var btn: SimpleButton = SimpleButton( getChildByName( "button" + i) ):
btn.addEventListener( MouseEvent.CLICK, eventHandler );
vector.push( btn ); //This part does not work
i++;
}
function eventHandler ( evnt: Event )
{
String callerName = evnt.currentTarget.name;
evnt.currentTarget.visible = false; // will hide the clicked button
}