sanstenarios
Messages postés10Date d'inscriptionlundi 20 octobre 2008StatutMembreDernière intervention 4 janvier 2009
-
20 oct. 2008 à 18:38
sanstenarios
Messages postés10Date d'inscriptionlundi 20 octobre 2008StatutMembreDernière intervention 4 janvier 2009
-
22 oct. 2008 à 00:59
Bonjour,
je découvre as3 depuis qqs jours,
lorsque je supprime un objet avec removeChild(getChildByName(instance)) est-ce que les listeners liés à l'instance sont automatiquement supprimés ? (ce qui m'arrangerait énormément)
Merci pour votre aide
A voir également:
La suppression d'un objet entraine t elle la suppression des listeners liés ?
pegase31
Messages postés6138Date d'inscriptiondimanche 21 décembre 2003StatutModérateurDernière intervention 4 septembre 201312 20 oct. 2008 à 18:56
Bonsoir
Lorsque tu fais un removeChild(); tu ne fais qu'enlever l'objet de la liste d'affichage, mais tu ne le détruis pas.
Il existe toujours en mémoire mais n'est pas affiché. Ce qui fait qu'effectivement ces listeners sont toujours actifs.
pegase31
Messages postés6138Date d'inscriptiondimanche 21 décembre 2003StatutModérateurDernière intervention 4 septembre 201312 20 oct. 2008 à 20:32
pourquoi ne crées-tu pas une fonction qui détruit les écouteurs présents dans ton objet, plutôt ?
Le fait de mettre un objet à null ne le détruit pas en mémoire (c'est un gros soucis du garbageCollector, d'ailleurs) ...
Peg'
Vous n’avez pas trouvé la réponse que vous recherchez ?
sanstenarios
Messages postés10Date d'inscriptionlundi 20 octobre 2008StatutMembreDernière intervention 4 janvier 2009 20 oct. 2008 à 22:35
oui, je pensais qu'on pouvait s'en passer si on supprimait l'objet.
ma difficulté est de pouvoir supprimer les listener sans passer par la fonction lancée par l'eventListener.
j'ai un tableau de tous les loader créés et ajoutés à la scène et c'est à partir de ce tableau que j'aimerais pouvoir les supprimer...
loader2Arr[i] = new loader(...
for (i=0, i<loader2Arr.length; i++){
loader2Arr[i] = new Loader();
loader2Arr[i].load(new URLRequest(xmlData.rubrique[nRub].article[nart].icones.icone[0]));
addChild(loader2Arr[i]);
loader2Arr[i].addEventListener(MouseEvent.CLICK, AfficheDetail);
}
pegase31
Messages postés6138Date d'inscriptiondimanche 21 décembre 2003StatutModérateurDernière intervention 4 septembre 201312 20 oct. 2008 à 22:56
la création d'objets à la volée est une mauvaise idée en as3 ... ça ne marche plus comme en as1/2
De plus, afficher directement le loader est mauvais .. pourquoi ne fais-tu pas un loader simple qui chargera au fur et à mesure les images ?
à partir de là tu crées des sprites dans lesquels tu colles les images et le tour est joué.
sanstenarios
Messages postés10Date d'inscriptionlundi 20 octobre 2008StatutMembreDernière intervention 4 janvier 2009 20 oct. 2008 à 23:51
C'est sympa de pas me laisser dans le vide ;
en fait as1 ou 2, connais pas, pas developpé en flash avant.
Les icones que je charge sont intégrées à l'instance d'un movie clip désigné par une graphiste dans l'interface flash auteur.
il y a plusieurs rubriques, chacun comporte son jeu d'icones, et en fonction d'un clic sur le bouton de rubrique, le movie clip s'initialise et s'affiche ou bien s'efface si on reclic sur le meme bouton. Chaque icone mene ensuite vers un movieclip affichant un zoom de l'icone, du texte et une serie d'icone pour accéder à des images alternatives de l'image première.
je récupère ça via un XML généré par spip et je génère les menus à la volée, et plutot que d'avoir 5 instances du movie clip (5 rubriques) j'ai pour l'instant choisi de vider et repeupler le meme movieclip mais finalement avec tes commentaires, je me dis que je ferais mieux de charger autant d'instances du clip que j'ai de rubriques... et que ce soit chargé une fois pour toutes plutot que de charger à chaque fois dans le même.
Tu écris qu'afficher directement le loader est mauvais, mais si je le charge dans un movie clip c'est correct non ?