Flash: mc usato come pulsante

Di: annalilla | 26/09/2020 18:37:16
Salve. Grazie a questo forum sono riuscita a risolvere un problema, ma se ne è presentato subito un altro :(
Ho realizzato un menu animato, in cui ad ogni bottone è associata una diversa animazione, sia in rollOver che in rollOut, ed è fatto in modo che l'animazione di uscita parte dallo stesso frame in cui era l'animazione di entrata nel momento in cui si è verificato il rollout.
L'ho fatto non utilizzando dei pulsanti, ma usando delle mc come pulsanti, e ogni mc contiene sia l'animazione completa (sia di rollover che di rollout) che le azioni, che sono queste:
pulsante1_btn.onRollOver=function(){
if (_currentframe>(_totalframes/2)) {
gotoAndPlay(_totalframes-_currentframe);
} else {
play();
}
};
pulsante1_btn.onRollOut=function(){
if (_currentframe<(_totalframes/2)) {
gotoAndPlay(_totalframes-_currentframe);
} else {
play();
Il problema è che a questi pulsanti non riesco ad associare un’azione onRelease.
Spiego: se metto l’azione onRelease all’interno della mc-pulsante, il comando non mi funziona perché il target dell’azione ovviamente si trova al di fuori della linea temporale della mc stessa.
Ma se con quel pulsante ciò che voglio è controllare la linea temporale del filmato principale?
Ho provato un’altra soluzione: ho fatto sì che l’azione onRelease caricasse un filmato esterno (loadMovieNum). In effetti funziona, ma così il sito diventa pesantissimo, e dovrei mettere dei preload su ogni filmato esterno, col risultato che probabilmente la gente si scoccerebbe a morte di dover aspettare il caricamento di ogni pagina, per non parlare della perdita dell’”effetto visivo” :-/
Poi ho provato ad inserire l’mc pulsante all’interno di un pulsante vero e proprio. Risultato: le animazioni di rollover/rollout del pulsante vanno bene, ma anche in questo caso l’azione onRelease non funziona, e tra l’altro proprio non capisco perché, visto che se è vero che il rollover e il rollout sono controllati dalla mc interna al pulsante, l’azione onRelease è invece associata ad un’istanza di pulsante. E’ come se la testina di riproduzione si fermasse ad eseguire le azioni della mc e non vedesse nient’altro.
Qualcuno mi può aiutare? Ehm…spero almeno di essere stata chiara!

Risposte



hola!
...se ben ho capito il tuo problema è quello di riferirti alla linea temporale del filmato principale e non a quella dei movieclip che usi come pulsanti...
...per fare questo nel codice actionscript ti devi riferire alla root principale, per farti capire meglio provo a farti un esempio riutilizzando il codice da te postato:
pulsante1_btn.onRollOver=function(){
if (_currentframe>(_totalframes/2)) {
gotoAndPlay(_totalframes-_currentframe);
} else {
play();
}
l'istruzione:
gotoAndPlay(_totalframes-_currentframe);
con la quale cambi lo stato del movie al passaggio del mouse equivale all'istruzione:
this.gotoAndPlay(_totalframes-_currentframe);
...sebbene la parola chiave "this" sia superflua per la corretta esecuzione dello script ci fa però capire l'ambito di validità dello stesso, ovvero ci dice che ci stiamo riferendo al movieclip stesso che ha richiamato l'istruzione (anche se a volte per capire l'ambito di uno script basta vedere dove è posizionato!!!)...
...per riferirti invece alla linea temporale principale o quella di qualsiasi altro movie presente non devi fare altro che specificare il bersaglio giusto, quindi ipotizzando che col tuo pulsante vuoi fare andare la riproduzione della linea principale al fotogramma 23 potresti usare questo script:
pulsante1_btn.onRelease = function()
{
_root.gotoAndPlay(23);
}
in questo caso l'istruzione gotoAndPlay() sarà eseguita dalla linea temporale principale (la _root per l'esattezza) e non dal movie che richiama lo script...
...tengo a farti notare che se hai un movie che ad esempio si chiama "filmato" ed è stato correttamente istanziato potresti riferirti alla sua linea temporale (sempre ipotizzando che vuoi che la linea temporale di "filmato" si sposti al fotogramma 23) in questo modo:
pulsante1_btn.onRelease = function()
{
filmato.gotoAndPlay(23);
}
hola!!

Di: alispiegate | 26/09/2020 18:38:16


GRAZIE, GRAZIE, GRAZIE!!!!!!!
La mia faccia sotto i piedi suoi!

Di: annalilla | 26/09/2020 18:39:16