2014-05-13 1 views
1

Je cherchais une solution pour supprimer les listes de MovieClips de la scène dans AS3. J'ai essayé d'ajouter les MovieClips à un tableau et de faire une boucle qui supprime chacun d'eux s'ils sont présents. J'ai dû inclure le si contient parce qu'il m'en renvoyait sans cela: "Erreur # 2025: le DisplayObject fourni doit être un enfant de l'appelant."Enlever enfant sur tous les tableaux movieclips

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]"); 
    } 

} 

Est-ce que j'utilise des tableaux faux?

Répondre

1

Essayez avec stage.contains (tableau [i])

+0

Merci! Ça marche maintenant. – user3572076

0

Pour le code plus modulaire (vous pouvez réutiliser, peu importe le parent), essayez de le faire de cette façon:

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]"); 
    } 
} 

De cette façon, si vous décidez plus tard que vous souhaitez avoir tous vos éléments dans un conteneur au lieu d'une étape, vous n'avez pas besoin de changer le code.