2010-09-09 6 views

Répondre

0

UIComponent.removeChild(child) est un sens. Vous pouvez également le faire avec View States.

+1

Je pense que cela dépend de la façon dont il définit disposer. removeChild ne supprimera pas toutes les références au composant, il ne sera donc pas éligible pour la récupération de place. Il devrait également envisager de supprimer un écouteur d'événement ajouté au composant et/ou annuler toutes les variables qui pointent vers lui. – JeffryHouser

+0

Oui. Sans savoir quel est le composant et comment il est utilisé, il est difficile de dire comment le transmettre au GC. –

0

La meilleure façon de le faire est de stocker toutes vos instances dynamiques dans un tableau, comme dynamicHandles:

var dynamicHandles:Array = new Array(); 
dynamicHandles["test"] = new MCTest(); 

Et puis ajouter les enfants:

addChild(dynamicHandles["test"]); 

Enfin, chaque fois que vous devez les supprimer, enlevez-les d'abord en tant qu'enfants, puis nettoyez le tableau comme suit:

removeChild(dynamicHandles["test"]); 
dynamicHandles = new Array(); 
+0

Je ne pense pas que votre code ci-dessus fonctionnera puisque les tableaux AS3 ne sont pas associatifs. Si vous modifiez dynamicHandles sur un objet, cela fonctionnera. –

Questions connexes