Preloader per Movieclip esterni in AS3


Preloader per Movieclip esterni in AS3

Adobe, rivoluzionando il codice ActionScript, ne ha migliorato notevolmente le performance e di questo non possiamo che esserne felici.
Comunque, insieme all’evoluzione e al perfezionamento, sono venuti fuori anche non pochi problemi di approccio per chi era abituato ad utilizzare sempre lo stesso codice per le funzioni base delle applicazioni Flash.
Una di queste è il classico filmato di preload che anticipa siti e animazioni Flash di grossa portata.
In questo tutorial spiegheremo il codice da usare in un preloader per caricare movieclip esterni con la versione 3.0 di Actionscript.

Vi sono vari modi per realizzare un preloader in Flash, quello che preferisco è un filmato che carica al suo interno il movieclip che vogliamo visualizzare: ricordiamoci che le dimensioni e il framerate del filmato finale coincidono con quelle del filmato che lo contiene.
Questo il codice da inserire nel primo e unico frame del filmato che conterrà l’animazione di preload.

var request:URLRequest = new URLRequest("swf/spot.swf");
var loader:Loader = new Loader();
var thisMC;

loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, loadProgress);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComplete);

function loadProgress(event:ProgressEvent):void {
var percentLoaded:Number = event.bytesLoaded/event.bytesTotal;
percentLoaded = Math.round(percentLoaded * 100);
trace(percentLoaded.toString()+"%");
}

function loadComplete(event:Event):void {
thisMC = MovieClip(loader.content);
loader.unload();
base.addChild(thisMC);
thisMC.gotoAndPlay(1);
}

loader.load(request);

Il codice è breve e semplice: si instanza un URLRequest che caricherà il movieclip esterno, quindi un Loader e la variabile thisMC a cui assegneremo poi il filmato caricato.
Creiamo 2 EventListener che richiamano le funzioni di gestione dell’avanzamento del caricamento e del suo completamento, scriviamo queste funzioni e infine, nell’ultima riga, diciamo al Loader di caricare il movieclip esterno.
La funzione loadProgress è chiara, basta dire che per calcolare il rapporto tra bytes caricati e totali si fa riferimento all’evento passato come parametro dall’EventListener;
la funzione loadComplete è più importante ma sempre semplice da comprendere: facciamo un casting come movieclip del contenuto del Loader e quindi un’assegnazione alla variabile thisMC, scarichiamo dalla memoria il Loader ormai inutile, aggiungiamo il movieclip ad uno vuoto (qui chiamato base) che avremo precedentemente posizionato sullo Stage ed infine diciamo allo stesso di partire dal primo frame: questa operazione è importante perchè altrimenti mostrerebbe il frame dove è arrivato dall’inizio del caricamento dal parte del Loader.

Altro aspetto interessante che possiamo apprendere da questa spiegazione è la semplicità con cui si fa riferimento al filmato appena caricato: basta assegnarlo ad una variabile per gestirlo completamente come se si trovasse sullo Stage.

Cerca: , , , ,

Ritieni questo post utile o interessante?
Condividi e Segnala

Leggi anche:

3 commenti per “Preloader per Movieclip esterni in AS3”

  1. daniele fassio ha detto:

    Da profano ho copiato il codice e seguito le istruzioni ma ottengo: 4 errori
    1095:
    Errore di sintassi: il valore letterale della stringa deve essere terminato prima dell’interruzione di riga.

  2. R.A.M.Page ha detto:

    Ho ricontrollato il codice e c’era un errore di decodifica dell’HTML, ho corretto e puoi riprovare.

  3. Preloader per Movieclip esterni per AS2 | W3 facile - Risorse, tutorial, notizie sul Web per lo sviluppatore ed il webdesigner ha detto:

    […] chi volesse lo stesso preloader versione AS3, ecco il link. Cerca: action script, actionscript, AS3, flash, movieclip esterno, passaggio as2 as3, […]

Rispondi al post