2011-08-17 63 views
1

我創建多個MC與下面的代碼:如何從舞臺刪除多個MC在AS3

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

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

    counter = counter + 1 
} 

現在我想從舞臺中刪除了一堆人。有什麼辦法可以在AS3中做到這一點?

在此先感謝您的任何建議。

回答

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()); 
    } 
} 
+0

科裏有答案。爲了擦拭MC,我有時會這樣做:'while(this.numChildren)this.removeChildAt(0);' – Jacksonkr

+0

如何將每個「characterBob」添加到數組中? – timvb

+0

只需在「addCharacter」函數外部創建一個數組變量即可。像我在我的例子中那樣稱之爲「鮑勃」。然後,在你的「addCharacter」函數中,添加像'bobs.push(newCharacter);' – Corey

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

,將刪除指定的DisplayObjectContainer,(Sprite或MovieClip)的所有兒童