Flash: due azioni consecutive a un bottone

Di: rikkardone | 26/09/2020 18:35:26
Ciao a tutti,
ho inserito un menu animato (fatto manualmente, non con actionscript) all'interno di una movie clip.
Per far sì che l'animazione del menù vada a buon fine, ho bisogno di risolvere questo problema: ai bottoni devo impartire due azioni ed è fondamentale che il programma porti a termine la prima azione e solo dopo questa iniziare e terminare la seconda.
In poche parole, la logica dovrebbe essere questa:
on (release) {
gotoAndPlay(10);
}
quando lungo la Timeline trovi lo Stop, allora fammi
{
gotoAndPlay(80);
}
Spero di essere stato chiaro e grazie anticipatamente.

Risposte



Quello che devi fare è inserire una variabile di controllo.
Ad esempio puoi impostare da qualche parte ciccio=0.
al frame 10 metterai ciccio=1.
poi con un if fai il resto! ;)
if (ciccio==1){quello che ti pare}

Di: little_84 | 26/09/2020 18:35:26


Grazie e scusami se puntualizzo, ma non sono esperto con le azioni...
...devi inserire una variabile di controllo; ad esempio “ciccio=0”.
Questo vuol dire che in un fotogramma (magari quello iniziale) inserisco nel pannello azioni semplicemente queste parole: “ciccio=0”?
...e, indi, stessa modalità (nel fotogramma che decido io) per impostare il valore “ciccio=1”?
E, infine, (altrimenti non capisco la logica) cosa significa il codice "=="? ...è stato un tuo errore di battitura? ...o no?
Grazie mille per la disponibilità!

Di: rikkardone | 26/09/2020 18:35:26


Ho provato a fare una prova su un file nuovo e i comandi li ho capiti e trovati e messi in atto. Però, in questo modo non mi compie la prima azione...
Gli ho dato il "goto" a un fotogramma dove ho impostato il valore della variabile a 0, ma il programma mi salta direttamente al fotogramma impostato nel "goto" della seconda azione...
Al fotogramma 20 ho messo la variabile a 0, in modo da fargli seguire la timeline fino al fotogramma 45 (dove la variabile è 1); ma è come se il programma prenda direttamente il valore impostato al fotogramma 45...
...perché il movie mi passa direttamente al fotogramma 70, che è la mia seconda azione. Ma io prima voglio vedere l'animazione inserita dal fotogramma 20 a quello 45.
Dove sta l'inghippo?

Di: rikkardone | 26/09/2020 18:35:26


Ho provato anche a inserire in ogni fotogramma (dal 20 al 44) la variabile uguale a 0, ma mi passa direttamente alla seconda azione, come se non considerasse l'azione inserita al bottone prima del comando "if" o come se non prendesse in esame il valore 0 della variabile nei fotogrammi della prima azione. Ma credo di più la prima ipotesi...

Di: rikkardone | 26/09/2020 18:36:26


cioè fammi capire.
tu hai 2 gotoAndPlay consecutivi.
diciamo frame 20 tu metti
stop();
ciccio=0;
if (ciccio==0){gotoAndPlay(21);}
quindi l'animazione va e procede fino al frame 45. al 45 metti:
stop();
ciccio=1;
if(ciccio==1){gotoAndPlay(70);}
però se devi fare una cosa così, con gli stop() forse ti funziona anke senza variabile.
prova

Di: little_84 | 26/09/2020 18:36:26


Credo che la questione non sia semplice, perché a ogni bottone devo impostare due "goto" consecutivi e, in base al bottone che io clicco, il secondo "goto" mi parte verso fotogrammi diversi, mentre la prima azione rimane uguale per tutti (perché è l'animazione di chiusura del pannello del menù).
Poniamo di aver tre bottoni al fotogramma 20.
Per tutti e tre i bottoni, la prima azione al rilascio sarà "goto 21"; al fotogramma 30 metto uno stop, perché non voglio andare oltre. Al primo bottone, dopo avermi portato al fotogramma 30, gli sarà chiesto di saltare al fotogramma 100; al secondo bottone di saltare al fotogramma 120; al terzo bottone di saltare al fotogramma 140.
Quindi, secondo la logica da te indicatami, al fotogramma 30 (oltre allo stop) dovrò mettere la variabile uguale a 1; e, di conseguenza, a ogni bottone devo dare l'ordine di eseguire la seconda azione solo dopo aver portato a termine la prima azione e dopo aver trovato lungo la timeline (in tal caso, nel fotogramma 30) la variabile impostata al valore 1.
Spero di essermi spiegato...

Di: rikkardone | 26/09/2020 18:36:26


sì è così. funziona?

Di: little_84 | 26/09/2020 18:36:26


No, non riesco a farlo funzionare.

Secondo me, sbaglio qualcosa io nel codice.

Di: rikkardone | 26/09/2020 18:36:26


mi vuoi mandare il file? o pesa troppo?

Di: little_84 | 26/09/2020 18:37:26


Certo!
Pesare no (200 kb), ma è un po' un casino... io sono uno preciso, ma mi rendo conto che aprirlo la prima volta può essere un trauma...
Ti avevo appena scritto un messaggio privato in questo senso...
Ma dovrai darmi il tuo indirizzo mail o c'è un altro modo per scambiarci il file? Io non ho un sito...

Di: rikkardone | 26/09/2020 18:37:26


hai un pvt!

Di: little_84 | 26/09/2020 18:37:26


Problema risolto.
Ed è tutto merito di little_84!

Di: rikkardone | 26/09/2020 18:37:26


Ho lo stesso problema:
ad un bottone devo associare due azioni consecutive di gotoAndPlay su un swf caricato nello stage.
Es.:
if (pt.currentFrame==50)
{
pt.gotoAndPlay(50);
pt.gotoAndPlay(1);
}
Ma così viene eseguito solo il secondo comando.
Aggiungo che nel frame 50 del filmato c'è uno stop().
Aiuto!

Di: magellano | 26/09/2020 18:37:26