Bene. Dal momento che il preloader non ce l'hai, dovresti procurartene uno, e collocarlo in un altro, nuovo livello, sempre nel frame n° 1.
Prima dello script che concerne il preloader, scrivi:
codice:
_root.stop ();
loadMovie ("primoswf.swf", "_root.mc");
_root.mc2._alpha = 0; // il contenuto di mc2, nonostante sia già caricato, NON si vedrà.
loadMovie ("secondoswf.swf", "_root.mc2");
Nell'ultima riga del preloader, dove vedi:
if (car == tot) { // di solito è così
fai seguire:
_root.play ();
Quindi, al completo:
codice:
if (car == tot) {
_root.play ();
}
Per il resto, rimane valido lo stratagemma che usa la visibilità; la otterremo tramite la proprietà "alpha".
- Anche mc e mc2 vanno messi nel primo frame della scena principale quindi, quello che ora sta nel frame 201 va eliminato, comprese le istruzioni che caricano il suo file esterno). Metterai mc2 in un nuovo livello tutto per sé, e a cui, per comodità, darai il nome: layer mc2.
Ora, spostati nel frame 201 del livello layer mc2, puntalo col destro e scegli: Inserisci fotoframma chiave. Selezionalo di nuovo (parlo del keyFrame appena creato), apri il pannello Azioni e scrivi:
codice:
stop ();
_root.mc2._alpha = 100; //soltanto qui, nel frame 201, il contenuto di mc2 sarà visibile.
loadMovie("secondoswf.swf", "_root.mc2");
Significa che il contenuto di mc2 sarà visibile soltanto quando l'utente andrà nel frame n° 201, ma non durante i 200 frame precedenti. Il nuovo caricamento attingerà direttamente alla cache e quindi vedrai secondoswf immediatamente, e dal suo inizio. Se tu non lo caricassi una seconda volta, l'animazione di secondoswf.swf sarebbe sicuramente al suo frame finale oppure, nel caso si trattasse di un'animazione in "loop", comparirebbe a partire da un frame intermedio.
Se non dovesse funzionare al primo colpo, rivedi il tutto, passo per passo, perché ti assicuro che questo metodo funziona.