Vediamo se ho capito le tue intenzioni...
Tu hai una serie di filmati "esterni" da caricare (non importa se con loadMovie o loadMovieNum) tramite dei pulsanti.
Questi filmati hanno tutti una dissolvenza iniziale, o comunque un'animazione iniziale.
Tu vorresti che questi filmati avessero anche una dissolvenza (o altra animazione) in uscita.
Bene, allora, come già avviene per l'animazione iniziale, anche quella finale, di chiusura, deve essere nel filmato stesso.
Per cui i filmati esterni che carichi dovrebbero avere una struttura logica di questo tipo:
1) Animazione iniziale
2) Body con stop() della timeline principale
3) Animazione finale (identificata da una label)
Ti servirà anche una variabile (magari sulla _root) per tenere memoria del filmato esterno in esecuzione, inizializzato vuoto, p. es. esterno = "";
Ed infine una "funzione" attivata dai vari pulsanti che eseguirà i seguenti passi:
1) Verifica il contenuto di esterno = "";
>>> se vuoto (significa che nessun filmato esterno è in esecuzione) va direttamente al punto 2)
>>> se valorizzato esegue l'animazione di chiusura del filmato corrente
2) a chiusura ultimata carica il nuovo filmato.
Esempio di funzione (ipotizziamo che i filmato siano caricati sul livello 1):
codice:
function caricafilmato (newmovie) {
if (esterno =! "") {
// l'etichetta dell'animazione finale è "chiusura"
_level1.gotoAndPlay("chiusura");
// aspetto che sia finita l'animazione
this.onEnterFrame = function() {
if (_level1._currentframe == _level1._totalframes) {
delete this.onEnterFrame;
}
}
}
// adesso devo caricare il nuovo filmato
// NON è necessario fare unload perché implicito nel load
esterno = newmovie; // memorizzo il nuovo nome del filmato
loadMovieNum(esterno, 1);
}
Nei vari pulsanti, dovrai semplicemente scrivere:
on (release) {
caricafilmato("pippo.swf");
}