proviamo così...
Allora, cominciamo dal mc che fungerà da maschera.
Sul primo frame avremo un fotogramma chiave, con un bello stop().
Più avanti ci sarà un altro fotogramma chiave, nella posizione finale in cui la maschera coprirà
tutto il soggetto ed un altro stop().
Tra i due KF, naturalmente, ci sarà l'interpolazione.
Più avanti ancora un altro KF, con la maschera nella posizione di partenza, ma SENZA stop().
In questo modo il moviclip tornerà al 1° frame e lì si fermerà.
Anche tra il 2° KF ed il terzo ci sarà l'interpolazione.
Fatto il movieclip, lo trasciniamo sullo stage, nella posizione desiderata, e gli attribuiamo un
nome istanza (con molta fantasia: masklip)
Poi avremo un mc "vuoto" che servirà da "contenitore" per il filmati esterni da caricare tramite
loadMovie: gli attribuiamo nome istanza = recipiente.
Questo è il movieclip che dovrà essere mascherato.
Sul 1° frame della timeline principale definiamo le variabili che ci servono:
Ora i pulsanti:codice:aperto = false; // indica se la maschera è aperta o chiusa recipiente.setMask(masklip); // maschero il mc recipiente // definiamo ora la funzione (una per tutti) che gestirà: // chiusura maschera (se aperta) // caricamento filmato function caricamovie (id) { if (aperto) { aperto = false; masklip.play(); // se mask aperta, la chiudo } recipiente.loadMovie(id); }
rimane da gestire l'apertura della maschera una volta che il caricamento è completatocodice:on (release) { caricamovie("filmato1.swf") // per il pulsante 1 } on (release) { caricamovie("filmato2.swf") // per il pulsante 2 } ... e così via...
(se lo facessimo prima non vedremmo nessun effetto)
Possiamo associare un'istruzione pratica (anche se un po' obsoleta) al movieclip "recipiente":
codice:onClipEvent (data) { if (!aperto) { aperto = true; masklip.play(); // apro la mask } }


Rispondi quotando