Puis-je savoir quelle est la bonne façon de garder trace des objets d'affichage créés et donc de me permettre de les supprimer plus tard, pour la collecte des ordures. Par exemple:Comment garder une trace des objets pour la collecte des ordures
for(i=0; i<100; i++){
var dobj = new myClass(); //a sprite
addChild(dobj);
}
D'après ce que je sais, la collecte des ordures de flash ne recueillera que les objets sans références solides et des écouteurs d'événements qui s'y rattachent.
Étant donné que le var dobj
est fortement référencé par rapport au nouvel objet créé, je vais devoir le "annuler" aussi, ai-je raison?
Dois-je créer un tableau de garder une trace de tous les objets créés dans la boucle tels que:
var objectList:Array = new Array();
for(i=0; i<100; i++)
{
var dobj = new myClass(); //a sprite
addChild(dobj);
objectList.push(dobj);
}
//remove all children
for each (var key in objectList)
{
removeChild(key as myClass);
}
Cela permet-il de recueillir GC sur balayage?
Mais puisque cela passe la référence d'objet à une fonction, qui (je suppose) stocke la référence, la référence à l'objet est toujours valide. – amphetamachine