Flash: rewind al pulsante

Di: BeNNa | 26/09/2020 18:35:19
Ciao a tutti,
sono incappato in un problema, e non riesco a venirne a capo.
Vi spiego la situazione brevemente:
ho un pulsante trasparente sopra un movieclip che contiene un'animazione. Voglio che al rollOver l'animazione parta (e questo funziona), e che al rollOut, dal frame in cui è arrivata, torni fino all'inizio, facendo il percorso contrario, un REWIND appunto.
Ora, ho provato a utilizzare questo codice, e non funziona. Qualcuno può aiutarmi?
stop();
//stato=0 pulsante non cliccato
//stato=1 pulsante già cliccato
if(stato == 0){
pulsante.onRollOver = function(){
gotoAndPlay(19); //parte l'animazione
trace(" pulsante NON premuto - rollover");
};
rewind = function(){
logo.prevFrame();
trace(i);
}
pulsante.onRollOut = function(){
trace("pulsante NON premuto - rollout");
for(i = logo._currentframe; i>1; i--){
rewind();
}
};
}
"logo" è il mio movieClip con animazione interna.
E' come se ignorasse completamente il percorso inverso (anche se con trace(i) capisco che lo fa correttamente), e passa direttamente al fotogramma 1 del movieClip.
AIUTOOO!
Grazie

Risposte



Ciao,
credo che il problema stia nel ciclo for che viene eseguito troppo velocemente.

Di: goku | 26/09/2020 18:36:19


E come posso fare per rallentarlo?!?
Grazie mille!

Di: BeNNa | 26/09/2020 18:37:19


ho modificato lo script per la prova che ho fatto, comunque c'è quello che ti occore per risolvere il tuo problema
pulsante.onRollOver = function() {
_root.clip.play();
};
pulsante.onRollOut = function() {
_root.clip.onEnterFrame = function() {
if (_root.clip._currentframe>1) {
rewind();
}
};
rewind = function () {
_root.clip.prevFrame();
};
};

Di: goku | 26/09/2020 18:37:19


Grazie mille Goku, proverò immediatamente.
Grazie davvero.

Di: BeNNa | 26/09/2020 18:37:19


Funziona, l'unico problema è che va la prima volta, poi non si muove più!!!!!
Non riesco a capire il perchè, mi sembra così strano...
Resta dentro al ciclo dell'enter frame!
Come faccio a farlo uscire?
Aiutatemi, vi prego!!!

Di: BeNNa | 26/09/2020 18:37:19


prova così:
pulsante.onRollOver = function() {
_root.clip.play();
};
pulsante.onRollOut = function() {
_root.clip.onEnterFrame = function() {
if (_root.clip._currentframe>1) {
rewind();
} else {
this.onEnterFrame=null;
}
};
rewind = function () {
_root.clip.prevFrame();
};
};

Di: goku | 26/09/2020 18:37:19


Ok, già meglio! Non resta più bloccato perennemente, però dopo il rollOut, riprende a funzionare solo al secondo passaggio del mouse...

Di: BeNNa | 26/09/2020 18:38:19


vai = 0;
pulsante.onRollOver = function() {
vai = 0;
_root.clip.play();
};
pulsante.onRollOut = function() {
vai = 1;
_root.clip.onEnterFrame = function() {
if (_root.clip._currentframe>1 && vai == 1) {
rewind();
} else {
this.onEnterFrame = null;
}
};
rewind = function () {
_root.clip.prevFrame();
};
};

Di: goku | 26/09/2020 18:38:19