将多个按钮添加到 AS3 中的数组或向量的简单方法
Easy way of adding muliple buttons to an array or vector in AS3
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 内部)?当您按下不同的按钮时,应该会发生同样的事情,但仅限于按下的按钮被按下。
1)
访问 button[i] 意味着:button 是一个集合,我访问 '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
}
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 内部)?当您按下不同的按钮时,应该会发生同样的事情,但仅限于按下的按钮被按下。
1) 访问 button[i] 意味着:button 是一个集合,我访问 '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
}