删除多个动画片段

时间:2012-02-12 07:01:15

标签: actionscript-3

我正在开发一款游戏。我从库中附加了随机的movieClip。我在库中名为picLeft1picLeft2picLeft3等电影剪辑。它工作正常,但我有问题删除它。下面的代码用于附加movieclip。这里ranque是一个存储随机生成的数字最多为5的数组,而HolderL是要在其中附加movieClip的movieClip。 q是一个精灵。

for (var i:int = 0; int<3; i++) {    
    que_mc.push("picLeft"+ranque[i]);    
    var que_mc_class:Class = getDefinitionByName(que_mc[i]) as Class;   
    q = new que_mc_class();  
    this["HolderL"+(i+1)].addChild(q);  
}

下面给出了删除动画片段的代码。我想删除HolderL中附加的所有动画片段。但是这段代码不起作用。

for(var j:int = 1; j<=3; j++) {  
    this["HolderL"+j].removeChild(q);  
}

2 个答案:

答案 0 :(得分:2)

Flash Player 11允许您使用它:

for (var j:int = 1; j<=3; j++) {  
    var container : DisplayObjectContainer = this["HolderL"+j];
    container.removeChildren();
} 

早期版本没有removeChildren()命令;你必须有两个循环:一个循环迭代容器影片剪辑,一个遍历显示列表并删除所有子项。

在FlashPlayer 11之前移除容器的所有子节点的最短路径:

while (container.numChildren > 0) container.removeChildAt(0);

答案 1 :(得分:1)

从您的代码中不清楚q是什么,但基本上如果您想要从一个影片剪辑中删除所有子项,最简单的方法是遍历所有子项并逐个删除它们。例如:

for (var i:int = container.numChildren - 1; i >= 0; i--) {
    container.removeChildAt(i);
}