2010-11-30 4 views
1

J'ai un document XML que je suis en train de lire et de dessiner un tas de rectangles à partir des données que je reçois. Ce bit de code est inséré dans une trame. Les boutons sont utilisés pour naviguer à travers les cadres. Un bouton sur l'écran principal vous amène à l'image qui dessine les rectangles. J'ai un bouton Précédent sur le cadre qui dessine les rectangles qui vous ramène à l'écran principal et cela fonctionne bien mais quand je clique sur Précédent, les rectangles que j'ai dessinés restent toujours sur la scène. Y at-il de toute façon que je puisse effacer tous les rectangles à la fois?Création et effacement de rectangles dans Flash CS5

Merci

Répondre

1

Définir un tableau de type DisplayObject et ajouter chaque objet (Sprite, Movieclip) à lui.

Lorsque vous voulez les supprimer, itérer à travers le réseau et enlever l'enfant:

// Adding object to the array 
var objArray:Array; // this could be a field member 
objArray = []; 

// ... navigate to your XML file and get each entry 
// ... after you create an object, add it 
if(objArray.indexOf(obj1) < 0) // Make sure it is not there so we do not add it twice 
    objArray.push(obj1); 


// Clearing... 
for each (var obj1:DisplayObject in objArray) 
{ 
    obj1.parent.removeChild(obj1); 
} 

// when done, clear the array 
objArray = []; 
0

si vous souhaitez supprimer tout dans le cadre actuel:

function disposeFrameContent() : void 
{ 
    while(numChildren) 
     removeChildAt(0); 
} 

// run this code before you change frame 
disposeFrameContent(); 
0

Cela dépendra de la façon vous dessinez les rectangles, si vous utilisez l'API graphique, vous pouvez simplement faire:

this.graphics.clear(); 

i f vous ajoutez DisplayObjects, faites:

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

Vous pouvez appeler des cours de ces méthodes sur un conteneur MovieClip:

 //for instance... 
    mc.graphics.clear(); 

    //or 
    while(mc.numChildren > 0) 
     mc.removeChildAt(0); 
Questions connexes