Accueil > Forum > > > > Garbage Collector
Garbage Collector
dimanche 19 juillet 2009 à 18:14:50 |
Garbage Collector

Orange73
|
Hello,
Juste une question pour savoir si on est conseillé d'utiliser le garbage collector ?
Exemple :
Code ActionScript :
function changeSection(e:MouseEvent):void
{
if(myClip){
removeChild(myClip);
myclip = null;
}
var myClip:MovieClip = new MovieClip();
myClip.name = "myClip0";
addChild(myClip);
}
myBtn.addEventListener(MouseEvent.CLICK, changeSection);
Donc savoir si cette partie est conseillée :
Code ActionScript : if(myClip){
removeChild(myClip);
myclip = null;
}
Merci
A+
Orange73
|
|
lundi 20 juillet 2009 à 16:09:29 |
Re : Garbage Collector

faiblard
|
Bonjour,
De toutes façon il vaut mieux supprimer un objet/variable si tu n'en as plus besoin...
Pour ce qui est du garbage collector il passe quand il veut tu n'as pas la main dessus :D Il peut même ne jamais passer....
-------------------------------------------------------------------
La recherche est ton amie ! Promis elle ne te mordra pas...
Enjoy
N'oubliez pas d'accepter pour aidez les autres quand ils cherchent !
|
|
lundi 20 juillet 2009 à 16:10:16 |
Re : Garbage Collector

nickydaquick
|
Salut,
premierement , ca ne sert a rien de detruire une variable si tu comptes la reutiliser(la reallouer avec les memes proprietes) encore apres. Je m'excuse d'avance si c'est juste le fait de ne pas bien avoir compris le but de l'exemple.
Pour ta question de Garbage collection, 3 conseils:
1- toutes les variables doivent etres mises a nulles , les composants graphiques (shape,sprite,bitmap et autres) doivent etre retires de la scene avant d'etre mis a null. exemple ton removeChild(myClip) suivi de myClip = null;
2- si jamais tu utilises un ecouteur d'evenements, utilise le avec une reference faible.
myBtn.addEventListener(MouseEvent.CLICK, changeSection,false,0,true);
false: a la phase cible
0 : niveau de priorite
true : utilise une reference faible
Avant donc de mettre a null, ta variable, deleste la de l'ecouteur d'evenement.
myBtn.removeEventListener(MouseEvent.CLICK, changeSection,false);
3- Si necessaire (mais moins souvent que possible neanmoins) faire un appel a System.gc();
au revoir et Bonne continuation.
http://liveplayaz.com
je suis heureux de faire partie d'une grande famille ...!
|
|
lundi 20 juillet 2009 à 16:24:29 |
Re : Garbage Collector

faiblard
|
Sauf que System.gc() ne marche uniquement que dans la version debogueur du flash player !
Pour en revenir a la réutilisation d'une variable je ne suis pas d'accord avec nicky, si tu dois réutilisé ta variable mais seulement dans très longtemps je ne vois pas l'utilité de la conserver...
-------------------------------------------------------------------
La recherche est ton amie ! Promis elle ne te mordra pas...
Enjoy
N'oubliez pas d'accepter pour aidez les autres quand ils cherchent !
|
|
lundi 20 juillet 2009 à 20:43:47 |
Re : Garbage Collector
|
lundi 20 juillet 2009 à 22:53:36 |
Re : Garbage Collector

nickydaquick
|
Salut,
la premiere option est celle que je conseille, et que je mets en pratique dans mes codes:
creer une fonction membre qui libere les variables membres relatives a un objet avant de le liberer lui-meme.
Bonne continuation
http://liveplayaz.com
je suis heureux de faire partie d'une grande famille ...!
|
|
mardi 21 juillet 2009 à 09:15:51 |
Re : Garbage Collector
|
mardi 21 juillet 2009 à 15:01:53 |
Re : Garbage Collector
|
mercredi 22 juillet 2009 à 09:18:23 |
Re : Garbage Collector

Orange73
|
Hello,
Merci
Dernière chose (je penses ),
imaginons ce code :
Code ActionScript : myObj:CustomClass = new CustomClass();
Cette classe créé un sprite (S) en l'ajoutant a la scene avec addChild();
Dans ce sprite, creation de 2 clips, l'un (A) contenant une dizaine de clip créé via boucle for et l'autre (B) contenant un simple textfield.
Donc, si j'ai bien compris, je dois créer une methode dispose(); par exemple,
- supprimant de la scene les clips present dans le clip A via boucle en supprimant les EventListener s'il y en a et en mettant a null ces clips
- supprimant de la scene le textfield dans le clip B puis les mettre a null
- supprimant de la scene le clip A et B puis en les mettant a null
- supprimant de la scene le clip S
Il reste enfin a mettre a null l'objet CustomClass lui-meme, mais comment ?
- dans la methode dispose()
Code ActionScript :
- avant l'instanciation de celui ci en vérifiant s'il existe ?
Code ActionScript :
if(myObj != null)
{
myObj.dispose();
myObj = null;
}
myObj:CustomClass = new CustomClass();
Merci.
-- Orange73 --
"L'homme n'est pas fait pour travailler, la preuve c'est que cela le fatigue" (Voltaire)

|
|
mercredi 22 juillet 2009 à 17:37:46 |
Re : Garbage Collector

nickydaquick
|
Réponse acceptée !
Salut,
tout est presqu'exact . Alors en reprenant ta logique, tu dois creer une fonction dispose():
1- supprimant de la scene du clip (A) les clips presents dans le clip A via boucle en supprimant les EventListener s'il y en a et en mettant a null ces clips
2- supprimant de la scene du clip (B) le textfield dans le clip B puis le mettre a null
3- supprimant de la scene du clip (S) le clip A et B puis en les mettant a null
4- supprimant de la scene le clip S
Il reste enfin a mettre a null l'objet CustomClass lui-meme, mais comment ?
myObjt = null;
avant l'instanciation de celui ci en vérifiant s'il existe ?
tres bonne idee mais pas necessaire sauf si tu reutilises ta variable maintes fois avec des donnees differentes et qu'il te faut absolument recreer un clip (S) a chaque fois.
Petite chose, les clips presents (par exemple) dans le clip a sont mis a null seulement si tu as une reference sur eux.
exemple
var txt:TextField = new TextField, clipA:Sprite = new Sprite;
clipA.addChild(txt); //<---- dans ce cas lors du dispose txt doit etre mis a null
function rajouterTextField():void
{
clipA.addChild(new TextField);//<--- reference faible: mettre clipA a null suggere que ce textField est aussi libre
}
http://liveplayaz.com
je suis heureux de faire partie d'une grande famille ...!
|
|
Cette discussion est classée dans : code, garbage, collector, myclip, changesection
Répondre à ce message
Sujets en rapport avec ce message
Optimisation code AS3 pour Garbage Collector [ par Orange73 ]
Hello, J'aurai juste quelques question afin d'optimiser mon code AS3 pour le passage du Garbage Collector. 1/ Imaginons une classe : [code=as] packa
Problème Tween et Flash Player 10 [ par Orange73 ]
Hello, J'ai un soucis de Tween lorsque je publie avec le lecteur flash player 10 (fichier > parametres de publication > lecteur). Les tweens du code
Organisation de code [ par Orange73 ]
Hello, Juste une petite question concernant la methode de developpement a appliquer pour ce genre de projet : 3 template different pour 3 element de
pb avec lien html dans "textField" (as3) [ par inaden ]
Bonjour, voilà j'importe des données via XML et je les traite... tout va bien, mais les liens qui sont dedans ouvre dans la même fen^tre que celle du
Debug d'un player music xml. AS2 [ par Castelcerf ]
Salut tout le monde; Je viens sur le forum car je suis désespérer. [^^confus5] J'ai fait un ptit site bénévolement pour un crew de muicien que je con
Sauvegarder un jpg (as3) [ par Kangouroops ]
Bonjour tout le monde, Je suis entrain de faire un générateur d'avatar et je bloque à un point essentiel, la sauvegarde de l'avatar. Alors j'ai testé
MON CODE ATTACHEMOVIE FONCTIONNE MAL [ par BBFUNK01 ]
Bonjour à tous, je suis en train d'essayer de rédiger un code pour charger un clip "clipform" de ma bibliothèque dans un clip vide "clipvide". Le cha
remove clip [ par BBFUNK01 ]
Bonsoir à tous, j'ai créé un clip chargé avec attachemovie, le clip est donc chargé lorsqu'on clique sur un bouton dans le menu. Dans le clip chargé s
Problème LoadMovie + Enabled [ par emizzzz ]
Bonjour ! J'ai un petit soucis avec mon code et je n'arrive pas où je peux me tromper. J'aurais besoin donc d'un coup d'oeil nouveau pour me donner vo
cd code de la route [ par khaaled88 ]
svp, j'aimerais bien savoire comment à partir des questions,réponses,images et sons du code de la route pui-je faire un programme du code de la route.
Livres en rapport
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|