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 :
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));
}
A l'appui du bouton:
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));
}
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()...

La façon de faire n'est pas bonne ?

Merci d'avance,
Bastien