Page 1 sur 1

(FLASH) Problème d'action script après un "gotoAndPlay&

MessagePosté: Ven Aoû 15, 2008 9:10 am
par neymeau
Bonjour à tous, :D

Etant débutant en Action Script, je suis confronté à un problème sur une e-card.
Je vous explique le contexte :
L'e-card sur laquelle je travaille possède un bouton "rejouer" <on (release) { gotoAndPlay(1); }> sur la dernière frame, ainsi qu'un <stop();> pour qu'un script de neige qui tombe puisse tomber en continu avant que l'on relance l'anim.

Mon souci est le suivant :

Lorsque l'on clique sur le bouton "rejouer", l'animation se relance normalement, mais le script de neige continue se s'éxécuter alors qu'il n'apprait en temps normal qu'au milieu de l'anim.

Ai-je oublié d'ajouter un script bloquant la chute de neige ?

Merci d'avance, :)

MessagePosté: Ven Aoû 15, 2008 10:23 am
par cestquoiladresse
Salut,

Tu as du charger ton anim' de la neige via LoadMovie etc. ....
Tu dois la décharger via UnLoadMovie etc. ...
Puis GotoAndPlay(1)

;)

CQLD

MessagePosté: Ven Aoû 15, 2008 12:22 pm
par benjouk
salut !

Il faudrait qu'on sache ce qu'il y a dans le script de la neige, ça peut être ce que dit CQLD ou un onEnterFrame...

File nous ton code quoi !

après je ne sais pas si c'est une coquille mais ici ;

on (release) { gotoAndPlay(1); } la fin d'instruction ( ; ) doit intervenir apres l'accolade. ça na pas forcément d'impact dans ce cas, mais quand tu as 4000 lignes de code ça peut jouer, c'est histoire d'avoir un code propre aussi.

MessagePosté: Ven Aoû 15, 2008 3:06 pm
par cuikisouri
Je pense que cestquoiladresse a la bonne reponse mais effectivement il faut savoir comment tu crées la neige pour découvrir comment la supprimer, si c'est du code qui crée un enterframe il faut supprimer l'enterframe, si c'est un clip qui se load il faut enlever le clip, si c'est un clip dans lequel on a fait play il faut faire stop ....

MessagePosté: Ven Aoû 15, 2008 5:50 pm
par neymeau
Merci à tous pour ces réponses.

J'ai essayé, comme vous me l'avez suggéré, de décharger l'anim via un UnLoadMovie, mais cela ne fonctionne pas.
Pour éviter de vous faire perdre du temps et ainsi préciser les choses, je vous montre le code utilisé :
for (k=0; k<245; k++) {
duplicateMovieClip(_root.snow, "snow"+k, k);
}

Ce code est palcé sur un frame au milieu de l'anim (environs 20 sec.)
Et à cet endroit, le MovieClip qui est appelé possède ce code pour pouvoir se dupliquer et bouger de façon paramétrable :
onClipEvent (load) {
movieWidth = 800;
movieHeight = 580;

i = 1+Math.random()*2;
k = -Math.PI+Math.random()*Math.PI;

this._xscale = this._yscale=50+Math.random()*100;
this._alpha = 75+Math.random()*100;
this._x = -10+Math.random()*movieWidth;
this._y = -10+Math.random()*movieHeight;
}
onClipEvent (enterFrame) {
rad += (k/180)*Math.PI;
this._x -= Math.cos(rad);
this._y += i;
if (this._y>=movieHeight) {
this._y = -5;
}
if ((this._x>=movieWidth) || (this._x<=0)) {
this._x = -10+Math.random()*movieWidth;
this._y = -5;
}
}


En tous cas, merci pour vos éclairages en ce beau 15 août.

MessagePosté: Ven Aoû 15, 2008 8:38 pm
par cuikisouri
ca ca marche pas ?

for (k=0; k<245; k++) {
removeMovieClip("snow"+k);
}

le code doit être au même niveau de profondeur que le duplicate....

MessagePosté: Ven Aoû 15, 2008 9:21 pm
par cestquoiladresse
Perso je ne mets jamais de code dans une frame en particulier mais plutôt dans un clip hors cadre qui est omniprésent sur toute la timeline. L'objectif de ce type de méthode c'est d'avoir toujours ses variables accessibles par le code et non pas au passage sur la timeline. En espérant avoir donné une piste.

Bonne soirée,

CQLD

MessagePosté: Sam Aoû 16, 2008 12:15 pm
par neymeau
:D Merci Cuikisouri !! Ca fonctionne ! :D
J'avais mal rédigé mon code (j'ai de gros progrès à faire en la matière).
CQLD, je vais prendre en compte tes conseils afin de travailler plus proprement.

Encore merci à vous tous pour ces précieux conseils. :)