删除所有阵列动画片段上的子项

时间:2014-05-13 08:50:09

标签: arrays actionscript-3 flash actionscript movieclip

我正在寻找一种解决方案,从as3中的舞台中删除动画片段列表。我有一个将动画片段添加到数组并制作一个循环,如果它们存在则删除它们中的每一个。我必须包含 if contains ,因为它在没有它的情况下发回给我:“错误#2025:提供的DisplayObject必须是调用者的子节点。”

var array: Array = new Array;

var symbol1: MovieClip = new Symbol1;
var symbol2: MovieClip = new Symbol1;

array.push(symbol1);
array.push(symbol2);

stage.addChild(array[1]);

for (var i = 0; i < array.length; i++) {
    if (contains(array[i])) {
        stage.removeChild(array[i]);
        trace("removed symbol[i]");
    }

}

我使用的数组错了吗?

2 个答案:

答案 0 :(得分:1)

尝试使用stage.contains(array [i])

答案 1 :(得分:0)

对于更多模块化代码(无论父代都可以重用),请尝试这样做:

for (var i = 0; i < array.length; i++) {
    if (array[i].parent) { //check to see if this item has a parent
        array[i].parent.removeChild(array[i]); //tell the parent to remove this child
        trace("removed symbol [i]");
    }
}

这样,如果您稍后决定将所有项目放在容器而不是舞台上,则无需更改代码。