问题描述
在Animate上使用ActionScript 3,我试图使用Array
和for
循环从场景中删除一堆项目。我实际上是从此站点下载了此代码,但似乎对我不起作用。它只会删除一项,而不会删除其他项。当我重画舞台时,它根本不会删除任何内容。我在路上还有另一个功能按钮,它将重新启动(重绘)游戏,我正在使用gotoAndplay()
重绘。仅供参考,“正方形”是精灵,“ myTF”是文本字段,这些文本字段“配对”在一起成为按钮。我在做什么错了?
function mainFunc(): void {
var btnsArray: Array = new Array("square","myTF3","square2","myTF2","square4","myTF4");
for (var ii = 0; ii < btnsArray.length; ii++) {
removeChildAt(btnsArray[ii]);
btnsArray.length = 0;
}
}
解决方法
如果您有要批量操作的 DisplayObject 名称的数组(例如,从显示列表中删除),则可以执行以下操作:
var A:Array = ["square","myTF3","square2","myTF2","square4","myTF4"];
// Iterate over items of the Array.
for each (var aName:String in A)
{
// Obtain a reference to the object by its instance name.
var aChild:DisplayObject = getChildByName(aName);
// Check if it is a valid instance before removing to avoid errors.
if (aChild)
{
removeChild(aChild);
}
}