AS3当它们在数组中列出时,我无法让removeChild删除我的项目

问题描述

在Animate上使用ActionScript 3,我试图使用Arrayfor循环从场景中删除一堆项目。我实际上是从此站点下载了此代码,但似乎对我不起作用。它只会删除一项,而不会删除其他项。当我重画舞台时,它根本不会删除任何内容。我在路上还有另一个功能按钮,它将重新启动(重绘)游戏,我正在使用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);
    }
}