Preloader per Movieclip in AS Actionscript 2
Nonostante si sia passati da tempo alla versione 3 di Actionscript, ancora ci sono persone che chiedono tutorial Flash di preloader AS 2 per Flash 8 o precedenti.
Come già visto in Preloader per movieclip in as Actionscript 3 preferisco affidare al preloader il compito di caricare i filmati come movieclip esterni: ricordiamoci sempre che il framerate e la dimensione dell’SWF caricato devono essere identiche a quelle del filmato che lo ospita.
Eccovi il codice di esempio da copiare e incollare sulla root del vostro preloader di movieclip:
my_mc = new MovieClipLoader();
preload = new Object();
my_mc.addListener(preload);
preload.onLoadStart = function(targetMC) {
trace("iniziato caricamento su "+targetMC);
};
preload.onLoadProgress = function(targetMC, lBytes, tBytes) {
somma_f = Math.round((lBytes/tBytes)*100);
trace(somma_f);
}
preload.onLoadComplete = function(targetMC) {
base.gotoAndPlay(2);
};
my_mc.loadClip("promo.swf", "base");
l’Object preload è diventato il listener del MovieClipLoader e si occupa di tenere sotto controllo inizio, progresso e fine del caricamento.
Il MovieClipLoader, tramite il metodo loadClip, carica l’SWF esterno nell’istanza base che abbiamo precedentemente posizionato sullo stage.
Finito il caricamento diciamo a base, su cui è stato caricato il filmato, di andare al frame 2, questo perchè per evitare che inizi a scorrere la timeline prima del tempo abbiamo inserito uno stop sul primo frame del movie importato.
Ritieni questo post utile o interessante?
Condividi e Segnala
Leggi anche:





April 17th, 2008, 12:10 pm
Ho provato a inserire il tuo codice facendo una modifica, ossia anzichè mettere il trace ho fatto scrivere il caricamento all’interno di un testo dinamico “percent_txt”. Però non riesco a dirgli, a caricamento completato, che il campo dinamico non deve essere più visibile. Credo che sia un problema legato al Depth ma non so come dirglielo: mi potresti aiutare?
Di seguito il codice:
var somma_f:Number=0;
my_mc = new MovieClipLoader();
preload = new Object();
my_mc.addListener(preload);
percent_txt.text._visible= true;
preload.onLoadStart = function(targetMC) {
trace(”iniziato caricamento su “+targetMC);
};
preload.onLoadProgress = function(targetMC, lBytes, tBytes) {
somma_f = Math.round((lBytes/tBytes)*100);
percent_txt.text= “Loading: ” + somma_f + ” %”;
}
preload.onLoadComplete = function(targetMC) {
base.gotoAndPlay(1);
percent_txt.text._visible= false;
};
my_mc.loadClip(”Presentazione.swf”, “base”);
May 2nd, 2008, 2:21 am
Se percent_txt è il campo di testo, come hai giustamente scritto, utilizza la proprietà text per scrivere a schermo la percentuale, ma se vuoi che diventi invisibile devi correggere il codice nella funzione onLoadComplete scrivendo, al posto di percent_txt.text._visible= false; la riga percent_txt._visible= false;.
August 4th, 2008, 10:11 am
Domanda, se la presentazione in .swf è troppo grande e desiderassi farla caricare in più stadi (cioè una sezione per volta, a seconda di dove si clicca), come posso fare? Grazie in anticipo
August 4th, 2008, 3:21 pm
Fai più MovieClip esterni e li carichi al click su un pulsante o durante la riproduzione di file già caricati.
Li carichi sempre sullo stesso MovieClip che si occuperà di fare da contenitore…occhio comunque alla profondità dei livelli e valuta se fare l’unload dei filmati che non ti servono più.