» 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:

var somma_f:Number=0;

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:

Feed dei commenti dei commenti - lascia un commento - trackback

4 commenti per “Preloader per Movieclip in AS Actionscript 2”

  1. gigi

    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”);

  2. R.A.M.Page

    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;.

  3. Erol

    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

  4. R.A.M.Page

    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ù.

Rispondi al post