LA FONCTION REMOVEMOVIECLIP() ET SES DIFFICULTÉES

Messages postés
2
Date d'inscription
mercredi 8 juin 2005
Statut
Membre
Dernière intervention
2 juin 2006
- - Dernière réponse : teut11
Messages postés
6
Date d'inscription
mercredi 21 novembre 2007
Statut
Membre
Dernière intervention
29 mars 2011
- 29 mars 2011 à 12:58
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

http://codes-sources.commentcamarche.net/faq/441-la-fonction-removemovieclip-et-ses-difficultees

Afficher la suite 
paoloadv
Messages postés
30
Date d'inscription
lundi 3 décembre 2007
Statut
Membre
Dernière intervention
15 avril 2014
-
J'ai remarqué que le bug avec removeMovieClip() ou unloadMovie() arrivait lorsque je n'attendais pas la fin de son déchargement avant de passer à la suite !
C'est pour cela que je n'utilise plus removeMovieClip() mais unloadMovie(), avec l'évènement onUnload, qui me permet de passer à la suite dès que la suppression est effective.
Cela dit, il y a toujours un problème assez mystérieux que je rencontre lorsque je gère une liste de clips dynamiques à afficher, suivant les mises à jours de la liste :
En appliquant la méthode de suppression avec unloadMovie()/onUnload sur la liste de clips, très curieusement le derniers de la liste n'est pas bien supprimé !!
Sans comprendre pourquoi, j'ai tout simplement alors ajouté un clip bidon, qui ne contient rien du tout, en fin de liste des clips à gérer, pour que l'évènement onUnload soit placé sur ce dernier clip bidon, afin que tous les autres soient bien supprimés avant d'attendre le clip bidon (qui, étant vide, ne pose pas de problème en restant affiché !).
Ainsi, j'arrive, en d'une part ajoutant un clip vide bidon en fin de liste de mes clips à gérer, et d'autre par en utilisant la méthode unloadMovie() sur tout les clips de la liste, puis un onUnload sur le dernier (le clip bidon), j'arrive donc à bien suppimer toute ma liste de clips, et afficher la nouvelle liste proprement !

Dur dur, avec Flash Mx 2004 en AS2!! J'espère que ces difficultés sont résolues en AS3...
Au fait, tout le code sur lequel je travaille étant codé en AS2 avec MX 2004, quelqu'un sait-il s'il existe une solution pour convertir quasi-systématiquement du AS2 en AS3 ?
Slagt
Messages postés
236
Date d'inscription
mercredi 2 avril 2003
Statut
Membre
Dernière intervention
29 mars 2011
-
Non, il faut tout faire à la main.
teut11
Messages postés
6
Date d'inscription
mercredi 21 novembre 2007
Statut
Membre
Dernière intervention
29 mars 2011
-
Pour écouter un nouvel événement (addChildListener), il faut effectivement faire un removeAddChild(nom_de_event), pour en créer un nouveau et écouter un nouveau clip selon les fonction voulu ... Il faut penser à remover aussi certain objet devant être mise à jour ... et faire un nouvel objet à écouter du nouvel événement ...

Bref, pas simple et des fois un peux casse tête quand on a des objets imbriqué dans des array ...

ex :

if (b.isrebound(bricks1[nB].bords[tR],bricks1[nB].bords[tR+1])){
obstacle=true; // on note qu’il y a eu un rebond
arebondi = obstacle;
if (bricks1[nB].touche()) {
removeChild(bricks1[nB]);
bricks1.splice(nB,1);
Score.text = String(vies.Score(iscore));
}
else{
Score.text = String(iscore+=25);
}
if (bricks1.length == 0){ // Parti gagner
removeChild(ball);
removeChild(raquette);
gotoAndStop("arreteJeu");
started=false;
for(tR=0; tR<bricks1.length; tR++){
removeChild(bricks1[tR]);
bricks1.splice(bricks1.length,1);
}
for(tR=0; tR<bricks2.length; tR++){
removeChild(bricks2[tR]);
bricks2.splice(bricks2.length,1);
}
removeChild(MouseEvent.CLICK,pressHandler);
removeChild(Event.ENTER_FRAME,enterFrameHandler);
started=true;
btn_start.addEventListener(MouseEvent.CLICK,pressHandler);
addEventListener(Event.ENTER_FRAME,enterFrameHandler);
lvl1Code = lvl2Code;
}
Slagt
Messages postés
236
Date d'inscription
mercredi 2 avril 2003
Statut
Membre
Dernière intervention
29 mars 2011
-
Teut11 » Le tutorial date un peu maintenant. Il a été fait pour l’AS1, pas l’AS3 ;)
teut11
Messages postés
6
Date d'inscription
mercredi 21 novembre 2007
Statut
Membre
Dernière intervention
29 mars 2011
-
Ouai, c'est vrai :( ... Je suis désolé
Commenter la réponse de erlau69