cs_aKheNathOn
Messages postés575Date d'inscriptiondimanche 23 décembre 2001StatutMembreDernière intervention23 octobre 2012
-
30 juin 2009 à 15:47
pegase31
Messages postés6138Date d'inscriptiondimanche 21 décembre 2003StatutModérateurDernière intervention 4 septembre 2013
-
4 juil. 2009 à 14:34
Bonjour,
Sous AS3 / Flash 10 :
J'ai une classe de type coverflox étendant un MovieClip. Elle charge une liste d'images.
Je fais bien en removeChild dans ma classe et sur la scéne, j'affecte bien la valeur null, en mode débug la variable est bien nulle mais impossible de récuperer la mémoire utilisée, et pire, en refesant le chargement la mémoire utilisée augmente.
Merci d'avance pour votre aide, j'ai passé des heures à chercher une solution sur google, je vois pas.
pegase31
Messages postés6138Date d'inscriptiondimanche 21 décembre 2003StatutModérateurDernière intervention 4 septembre 201312 30 juin 2009 à 23:15
Bonjour,
Ton problème est "normal", il faut attendre le passage du Garbage Collector (le "camion poubelle" en mémoire de flash) pour récupérer la mémoire.
Cependant, il ne fonctionnera que si ton élément n'a plsu d'interaction tels que des écouteurs ou des éléments en cours d'exécution (Timer, Tween, etc...).
C'est automatique et tu ne peux pas le déclencher, c'est une gestion interne du player.
cs_aKheNathOn
Messages postés575Date d'inscriptiondimanche 23 décembre 2001StatutMembreDernière intervention23 octobre 2012 4 juil. 2009 à 14:02
Salut Pagase31,
Merci pour ta réponse, c'est effectivement la piste que j'ai suivi. Mon problème (que j'ai en partie réglé) venais des addEventListener et des clonage d'instances.
Pour info j'ai trouvé une commande forçant le garbage à collecter : System.gc(). Pour AS 2.0 y'à un hack avec le sharedObject.
C'est quand même une grosse galère quand tu passes de AS2 à AS3, l'instanciation dynamique est à regarder de prêt ... et dommage qu'il n'existe pas de destructeur dans la déclaration des classes.