我有很多按钮(超过200个),我想循环遍历它们。它们都是IDE中相同图形符号的实例,所以应该有一种方法来循环遍历它们。
如果我在JavaScript中做这个或类似的事情,我可以这样做:document.getElementsByClassName('MyGraphicSymbol')
,然后我有一个所有元素的数组。在AS3中寻找类似的东西
actionscript 3中的所有类和对象都是作为关联数组在内部构建的。这意味着你可以像这样获取一个元素:
this ["instanceName"];
当每个按钮都有一个实例名,比如"button_" + i
,你可以用这个内部数组遍历所有按钮:
for (var i= 0; i < 200; i++){
var button: SimpleButton = this ["button_" + i] as SimpleButton;
// do something
}
我总是将项目添加到Vector或Array中,以便更好地控制它们。但是…如果你把所有的按钮都添加到同一个容器中,你可以这样做:
var buttons : int = buttonHolder.numChildren;
var button : MovieClip;
for(var i : int = 0 ; i < buttons ; i++)
{
button = buttonHolder.getChildAt(i);
button.someFunctionOfChoice();
}
您是否考虑过为类创建一个静态数组,并在构造函数中将新实例添加到该数组中?然后你可以直接输入
for each(var i in YourButtonClass.arrayOfButtons){
//do nothing
}