Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Caricare un MovieClip (swf) esterno con ActionScript 3

Come sfruttare la classe Loader per caricare filmati esterni all'interno di quello principale
Come sfruttare la classe Loader per caricare filmati esterni all'interno di quello principale
Link copiato negli appunti

Può capitare di voler importare nei nostri filmati alcuni MovieClip che abbiamo già pubblicato come file .swf.

Utilizziamo quella che viene definita una "tecnica asincrona di caricamento".

Vediamo quali sono i passi da seguire e poi discutiamo sull'asincronia:

  1. lanciare una richiesta per il file .swf che ci interessa
  2. definire un listener che catturi l'evento dell'avvenuto caricamento
  3. stabilire che l'azione da compiere una volta completo il caricamento è l'aggiunta del filmato, in modo che ne parta la riproduzione

La tecnica è asincrona per un semplice motivo: non si fanno ipotesi sul tempo necessario al caricamento del filmato, quindi non stabiliamo un momento con il quale sincronizzare la riproduzione.

Chiarito questo, iniziamo a vedere quali elementi di AS3 mettere in campo per portare a termine il lavoro. Anzitutto dobbiamo effettuare una richiesta, per cui ci serviremo ancora della classe URLRequest e abbiamo capito che ci serve un listener ed un evento, concetti già noti dalle scorse lezioni.

Manca solo un oggetto che assolve la funzione di caricamento: in ActionScript 3 utilizziamo la classe Loader.

Per prima cosa quindi creiamo un nuovo oggetto loader della classe Loader.

Creare un nuovo Loader

var loader:Loader = new Loader();

Poi aggiungiamo il listener alla proprietà contentLoaderInfo. L'evento COMPLETE viene scatenato alla fine del caricamento e lancia la funzione fineCaricamento.

Aggiungere un listener per controllare l'evento COMPLETE

loader.contentLoaderInfo.addEventListener(Event.COMPLETE, fineCaricamento)

Infine scriviamo la funzione fineCaricamento che aggiungerà al nostro filmato, quello caricato dall'esterno.

Scrivere il gestore dell'evento

function fineCaricamento(loadEvent:Event)
{
  addChild(loadEvent.currentTarget.content);
}

Una volta predisposto tutto possiamo lanciare il caricamento del filmato esterno, utilizzando il metodo load.

Lanciare il caricamento

loader.load(new URLRequest("bottoni_eventi.swf"))

Naturalmente per caricare un filmato diverso, basta cambiare l'URL nella URLRequest, sostituendo il nome play e stop.swf con l'URL del filmato che preferiamo.

Il codice completo risulta:

var loader:Loader = new Loader();

loader.contentLoaderInfo.addEventListener(Event.COMPLETE, fineCaricamento)

function fineCaricamento(loadEvent:Event)
{
  addChild(loadEvent.currentTarget.content);
}

loader.load(new URLRequest("bottoni_eventi.swf"))

Ecco l'esempio completo.

Ti consigliamo anche