我正在开发一款游戏。我从库中附加了随机的movieClip。我在库中名为picLeft1
,picLeft2
,picLeft3
等电影剪辑。它工作正常,但我有问题删除它。下面的代码用于附加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);
}
答案 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);
}