Vorrei sottoporvi un filmato che ho realizzato per aggirare un problema, ma che non si è rivelato esente da difetti.
Il problema iniziale:
ho un menu in flash composto da più di due bottoni, e alla pressione di questi bottoni voglio che scompaia un'immagine all'interno del filmato, e ne compaia una appropriata al link appena cliccato.
In sostanza se clicco il bottone 2 deve comparire l'immagine 2, e così via.
Il problema è far uscire, con una animazione, l'immagine attualmente visualizzata.
La mia soluzione:
ho creato 2 contenitori: A che contiene B, e nella cui timeline c'è l'animazione in cui B scompare dietro a una maschera; e B , che contiene le immagini, e le relative animazioni.
Alla pressione di un bottone si attiva subito l'animazione di uscita di B (che rientra subito), e dopo un tempo prestabilito (1 secondo) si attiva l'animazione di ingresso dell'immagine all'interno di B, appena ricomparso dentro A.
Funziona, ma si presentano due difetti non trascurabili:
1. a volte dopo l'uscita di B con l'immagine al suo interno, e prima che l'immagine rientri, B ricompare con l'immagine vecchia al suo interno per un fotogramma o due; problema probabilmente attribuibile all'impossibilità di temporizzare perfettamente l'animazione, e che per ora non sono riuscito ad aggirare;
2. ben più grave: se si clicca velocemente più volte lo stesso bottone, l'immagine ad esso associata 'impazzisce', e ripete all'infinito la propria animazione senza possibilità di fermarla se non chiudendo il filmato.
Potete offrirmi qualche idea per ovviare a questi difetti? Magari sostituendo il metodo della temporizzazione con uno più affidabile.
Potete vedere un esempio del filmato in questione, e scaricarne il sorgente, qui: http://wes.altervista.org/menu_pausa/
Lo script relativo ai bottoni è il seguente:
Nota:codice:on (release) { _root.cont_ext.gotoAndPlay("esce_img"); var Aspetta = 1000 function wait(){ _root.cont_ext.cont_int.gotoAndPlay("entra_1"); clearInterval(afterAspetta); } var afterAspetta=setInterval(wait,Aspetta); stop(); }
cont_ext = A
cont_int = B
Vi ringrazio per ogni aiuto che potrete offrirmi.
SB