Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Flash/Flex > Flash > AS3
AS3 Questions relatives à la programmation ActionScript 3 (Cours AS3)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/01/2012, 19h17   #1
Invité de passage
 
Inscription : janvier 2012
Messages : 4
Détails du profil
Informations forums :
Inscription : janvier 2012
Messages : 4
Points : 0
Points : 0
Par défaut Décharger un movieclip

Bonsoir à tous,
Je bute sur un problème d'unload, lorsque je clique sur mon bouton de menu, j'aimerai qu'il décharge le movieclip car mon site devient gourmand en mémoire, et pour les petites configuration ça pause des problèmes de vitesse.
Merci d'avance.
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
 
//Imort
import flash.net.URLRequest
import flash.events.Event
//var
var bgURL:URLRequest = new URLRequest("main.swf");
var fond_back:URLRequest = new URLRequest("fond.swf");
var swfLoader:Loader = new Loader();
var swfLoader1:Loader = new Loader();
var chargeur:Loader = new Loader();
var adresse:URLRequest = new URLRequest("");
 
//loader
chargeur.load(adresse);
swfLoader.load(bgURL);
swfLoader1.load(fond_back);
//Child
addChild(chargeur);
main_mc.addChild(swfLoader);
fond_mc.addChild(swfLoader1);
//???
swfLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadProdComplete);
swfLoader.contentLoaderInfo.addEventListener(Event.UNLOAD, UnloadProdComplete);
 
//Fullscreen
function setFullScreen():void {
if (stage.displayState== "normal") {
stage.displayState="fullScreen";
stage.scaleMode = StageScaleMode.NO_SCALE;
} else {
stage.displayState="normal";
}
}
//Fin Fullscreen
//Fonction trace
function loadProdComplete(e:Event):void {
	trace("file loaded");
}
function UnloadProdComplete(e:Event):void {
	trace("file Unloaded");
}
//Fin fonction trace
 
 
 
//Bouton Acceuil
menu_mc.Bouton_accueil.addEventListener(MouseEvent.CLICK,charger1);
function charger1(evt:MouseEvent) {
swfLoader.unload();
adresse = new URLRequest("main.swf");
swfLoader.load(adresse);
}
//Bouton carte	
menu_mc.Bouton_carte.addEventListener(MouseEvent.CLICK,charger2);
function charger2(evt:MouseEvent) {
adresse = new URLRequest("news.swf");
swfLoader.load(adresse);
}
//Bouton Galerie
menu_mc.Bouton_galerie.addEventListener(MouseEvent.CLICK,charger3);
function charger3(evt:MouseEvent) {
adresse = new URLRequest("main.swf");
swfLoader.load(adresse);
}
//Bouton contact
menu_mc.Bouton_contact.addEventListener(MouseEvent.CLICK,charger4);
function charger4(evt:MouseEvent) {   
adresse = new URLRequest("main.swf");
swfLoader.load(adresse);
}
//Bouton Client
menu_mc.Bouton_client.addEventListener(MouseEvent.CLICK,charger5);
function charger5(evt:MouseEvent) {
	adresse = new URLRequest("main.swf");
    swfLoader.load(adresse);	
	}
 
 
//Bouton Fullscreen
botom_barre_mc.Fullscreen.addEventListener(MouseEvent.CLICK, goFull);
function goFull(event:MouseEvent):void {
setFullScreen();
}
escobarito est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/01/2012, 19h36   #2
Invité de passage
 
Femme
dessinatrice
Inscription : janvier 2012
Messages : 2
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France, Calvados (Basse Normandie)

Informations professionnelles :
Activité : dessinatrice
Secteur : Bâtiment

Informations forums :
Inscription : janvier 2012
Messages : 2
Points : 1
Points : 1
Bonsoir !

Je débute alors la réponse reste une supposition :

Code :
var racine = root.parent.root

Dans ta fonction :

Code :
racine.TaVariable.unload()
Si cela peux t'inspirer.

A+
kadom07 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/01/2012, 19h59   #3
Invité de passage
 
Inscription : janvier 2012
Messages : 4
Détails du profil
Informations forums :
Inscription : janvier 2012
Messages : 4
Points : 0
Points : 0
Heu ... pas trop en fait je ne suis pas sur que ce soit lié ...
Malgré le swfLoader.unload(); lorsque je reclic sur mon bouton, il grossi en mémoire ... que faire ?

pourtant dans l'élément trace, il me dit bien qu'il est unloaded ... je ne comprend pas ou se situe mon erreur ...
escobarito est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/01/2012, 20h41   #4
Futur Membre du Club
 
Inscription : avril 2010
Messages : 82
Détails du profil
Informations forums :
Inscription : avril 2010
Messages : 82
Points : 19
Points : 19
Bonjour,

As-tu essayé tout simplement :

Supprime aussi tous les "events" que tu n'utilise plus avec :

Tu peux aussi appeler manuellement le garbage colector après ces opérations :


Normalement, ta consommation mémoire devrait fortement diminuer.
carton99 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/01/2012, 21h07   #5
Invité de passage
 
Inscription : janvier 2012
Messages : 4
Détails du profil
Informations forums :
Inscription : janvier 2012
Messages : 4
Points : 0
Points : 0
Dans le code de mon bouton j'ai rajouté ceci
Code :
1
2
3
4
5
6
7
8
9
 
menu_mc.Bouton_accueil.addEventListener(MouseEvent.CLICK,charger1);
function charger1(evt:MouseEvent) {
main_mc.removeChild(swfLoader);
System.gc();
main_mc.addChild(swfLoader);
adresse = new URLRequest("main.swf");
swfLoader.load(adresse);
}
Par contre il me fait une erreur sur le system.gc(); je dois définir quelques chose ?
Pour l'eventlistener je ne comprend pas, je dois ajouter ceci ?
Code :
swfLoader.contentLoaderInfo.removeEventListener(Event.COMPLETE, loadProdComplete);
Merci pour vos réponses
Citation:
Envoyé par carton99 Voir le message
Bonjour,

à tu essayé tous simplement

removeChild( myMc );

Supprime aussi tous les "events" que tu n'utilise plus.

avec

removeEventListener

tu peu aussi appeler manuellement le garbage colector manuellement apres ces opérations.

System.gc();


Normalement ta conso mémoire devrais fortement diminuer .
escobarito est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/01/2012, 21h33   #6
Futur Membre du Club
 
Inscription : avril 2010
Messages : 82
Détails du profil
Informations forums :
Inscription : avril 2010
Messages : 82
Points : 19
Points : 19
Pour System.gc() il faut faire l'import:
Code :
import flash.system.System;
Une recherche google aurais du t'amener sur cette page rapidement
http://help.adobe.com/en_US/FlashPla...em/System.html

Pour supprimer l'event sa à l'air OK.

Personnellement je pense que le "removeChild" devrais largement suffire le reste demande une plus grande compréhension de l'AS3.

Par contre du doit faire le removeChild apres le addChild dans ce genre:

Code :
1
2
3
function unLoad() {
     main_mc.removeChild(swfLoader);
}
carton99 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/02/2012, 20h54   #7
Invité de passage
 
Inscription : janvier 2012
Messages : 4
Détails du profil
Informations forums :
Inscription : janvier 2012
Messages : 4
Points : 0
Points : 0
Par défaut info complémentaires ?

voilà j'ai réussi à remove les childs, maintenant lorsque j’insère la commande System.gc(); il me fait une erreur ...1078: Label doit être un simple identifiant.
Que faire ??? sorry mais je débute en AS3 ...
escobarito est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h16.


 
 
 
 
Partenaires

Hébergement Web