Bonjour !
J'ai une application qui charge des images différentes suivant le bouton appuyé. A chaque appui sur un bouton je fait un nouveau loader.load( .. );
Et la taille du fichier en mémoire augmente très fortement (80Mo de RAM pour chaque photo de 4mo), on arrive donc vite fait a 500Mo de RAM...
J'ai donc essayer de faire un unload comme ceci :
A l'appui du bouton:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 // Dans le constructeur nouvelleTexture = new Loader(); nouvelleTexture.contentLoaderInfo.addEventListener(Event.COMPLETE,changementSphere); nouvelleTexture.contentLoaderInfo.addEventListener(Event.UNLOAD,onUnloadTexture); // Après le constructeur private function onUnloadTexture(e:Event):void{ trace(enAttente); nouvelleTexture.load(new URLRequest(enAttente)); }
Logiquement, avant de charger la prochaine image, il décharge l'ancienne. Mais la RAM continue d'augmenter, comme ci je n'avais pas fait de unload()...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 // Dans l'évènement généré par le bouton if(nouvelleTexture.content != null){ enAttente = evt.urlPano; nouvelleTexture.unload(); } else{ nouvelleTexture.load(new URLRequest(evt.urlPano)); }
La façon de faire n'est pas bonne ?
Merci d'avance,
Bastien
Partager