如何从AS3中的舞台中删除多个MC

时间:2011-08-17 01:15:37

标签: actionscript-3

我使用以下代码创建了多个MC:

function addCharacter() {
    var newCharacter:characterBob = new characterBob();
    this.addChild(newCharacter);

    newCharacter.x=1000 - (50*counter);
    newCharacter.y=50;

    counter = counter + 1
}

现在我想从舞台上删除一堆。有没有办法在AS3中做到这一点?

提前感谢任何建议。

2 个答案:

答案 0 :(得分:2)

您可以尝试以下内容:

for each (var o:DisplayObject in this) {
    if (o is characterBob) {
        removeChild(o);
    }
}

也许更好的选择是将每个“characterBob”创建成一个数组。然后遍历数组并删除每个对象。

var bobs:Array = new Array();

function addCharacter() {
    var newCharacter:characterBob = new characterBob();
    this.addChild(newCharacter);

    newCharacter.x=1000 - (50*counter);
    newCharacter.y=50;

    counter = counter + 1;

    bobs.push(newCharacter);
}

function removeAllBobs():void {
    while (bobs.length > 0) {
        removeChild(bobs.shift());
    }
}

答案 1 :(得分:0)

while(myDisplayObjectContainer.numChildren > 0){
    myDisplayObjectContainer.removeChildAt(0);
}

这将删除指定的DisplayObjectContainer(Sprite或Movieclip)的所有子项