Flash  »  Articoli  »  Actionscript 

ActionScript 2 vs ActionScript 3. Un confronto pratico

di: Davide Beltrame     10 Novembre 2006

Senza dubbio la novità più attesa nel panorama Flash è relativa all'introduzione, nella versione 9, del nuovo linguaggio ActionScript 3. Tale linguaggio è già utilizzabile in condizioni reali con Flex 2, ed è possibile sperimentarlo scaricando dagli Adobe Labs la "Flash 9 Professional ActionScript 3 Alpha".

Su questo linguaggio molto è stato scritto ponendo l'accento sulle nuove funzioni; in questo articolo cercheremo di essere più concreti, andando ad analizzare come cambierà il nostro codice con la nuova versione di questo linguaggio; lo faremo prendendo ad esempio alcuni snippet di utilizzo comune e ne analizzeremo la proposizione in ActionScript 2 e 3, cercando di evidenziare pro e contro dei diversi script.

Caricamento di immagini o swf esterni

ActionScript 2

Un'operazione che viene eseguita molto spesso dagli sviluppatori è il caricamento di un'immagine o di un filmato esterno. Con Flash Mx 2004 era stato introdotta la classe MovieClipLoader, che permette di caricare facilmente un elemento esterno e gestirne gli errori.

AS2: caricamento con MovieClipLoader e gestione errori

var container:MovieClip = createEmptyMovieClip("container", getNextHighestDepth());
var mcLoader:MovieClipLoader = new MovieClipLoader();
var loadListener:Object = new Object();
mcLoader.addListener(loadListener);
mcLoader.loadClip("Tramonto.jpg", container);

loadListener.onLoadError = function(target_mc:MovieClip, errorCode:String, httpStatus:Number) {
  trace(">> Errore");
  trace(">> ==========================");
  trace(">> Codice errore: " + errorCode);
  trace(">> Stato http: " + httpStatus);
}

loadListener.onLoadProgress = function(target:MovieClip, bytesLoaded:Number, bytesTotal:Number):Void {
  trace("Ho caricato " + bytesLoaded + " bytes su " + bytesTotal);
}

loadListener.onLoadStart = function ():Void {
  trace("Ho iniziato a caricare");
}

loadListener.onLoadComplete = function(mc:MovieClip):Void {
  trace("Ho caricato nel movieclip: " + mc);
}

Analizziamo i passaggi. Per prima cosa crea un nuovo movieclip sullo stage, che sarà il "contenitore" dell'immagine che andremo a caricare, quindi crea un oggetto movieClipLoader con nome "mcLoader". Questo sarà l'oggetto che useremo per applicare il comando loadClip, che permette di caricare la fonte esterna (swf, jpg, etc).

Abbiamo poi i "listener", ovvero degli oggetti che analizzano le operazioni: il nostro listener è loadListener, che creiamo con il comando new Object e andiamo poi ad associare all'oggetto MovieClipLoader creato in precedenza (mcLoader.addListener(loadListener). Infine abbiamo alcune funzioni associate a questo listener, precisamente:

  • onLoadError : intercetta eventuali errori (ad esempio se cerchiamo di caricare un file inesistente)
  • onLoadProgress: analizza il caricamento della fonte esterna e permette quindi di analizzare la quantità di dati caricati in ogni momento
  • onLoadStart: intercetta l'avvio del caricamento
  • onLoadComplete: intercetta la fine del caricamento (quindi quando abbiamo effettivamente a disposizione l'immagine nel nostro filmato).

Ad ciascun listener sono associat delle azioni che mostrano nel pannello "output" di Flash determinati messaggi. Utilizzando il file "CaricaJpg_AS2.fla" che troveremo nel file .zip allegato all'articolo potremo vedere questi listener in azione.

Guide Flash

Guida ActionScript 3 di base

Apprendere, in poche lezioni, le nozioni fondamentali per gestire...

Guida FlashDevelop

Installare e usare FlashDevelop, potente ambiente di sviluppo open...

Guida Flash Builder 4

Un percorso alla scoperta delle potenzialità più importanti...

Altre guide

Newsletter @Flash

Ogni martedì, guide, articoli, FAQ, movie, audio su Macromedia Flash e Actionscript direttamente nella tua casella di posta

Iscriviti alla newsletter

Altre newsletter

Corsi in aula

Corso Google AdWords Base

25 Giugno 2012 a Milano
Disponibilità: 7 Posti

Corso Google AdWords Base

05 Giugno 2012 a Roma
Disponibilità: 7 Posti