2009-11-17 9 views
2

question Assez basique, mais il est encore m'a fait un peu confus ..Suppression d'une forme via le code

J'ai un objet (barre de menu de navigation) que je veux changer les couleurs avec le code, donc dans un updateColor fonction, j'obtiens les limites de l'objet (qui est une forme de dessin contenue dans un MovieClip) et redessine une nouvelle forme sur le dessus avec la nouvelle couleur, mais j'ai remarqué que la dernière forme existe encore derrière ce redraw.

J'ai essayé d'utiliser obj.graphics.clear(); avant le redessiner mais cela n'a pas éliminé la forme originale. Y at-il une autre commande que je néglige?

Répondre

0

Si vous n'avez pas dessiné l'objet que vous souhaitez supprimer dans le même objet graphique, l'effacement ne fonctionnera pas. Vous devez supprimer le DisplayObject.

En fonction du nombre d'enfants que vous pouvez faire:

obj.removeChildAt(0); 

Cela supprime également MovieClips/boutons placés sur la scène manuellement. Si vous avez une référence à la DisplayObject que vous souhaitez supprimer, vous pouvez simplement faire

obj.removeChild(backgroundClip); 

Notez que vous pouvez également changer la couleur d'un DisplayObject directement:

import flash.geom.ColorTransform; 
... 
public var test:MovieClip; //instance on stage 
... 

var cf:ColorTransform = test.transform.colorTransform; 
cf.color = 0xff0000; 
test.transform.colorTransform = cf; 
0
while(this.numChildren) 
{ 
    this.removeChildAt(0); 
} 

écraseront enfant objet sur ce MovieClip, si elle efface trop, puis mettez le dessin de forme dans un sous-clip, et effacez le sous-clip.

Questions connexes