Ok, perfetto.
Torniamo ora a questo:
>> Perchè nella riga 2 la proprietà "contentLoaderInfo" viene definita in "Event.COMPLETE" e non semplicemente con "COMPLETE"?
Sempre in AS3 si è scelto di aumentare il numero di classi per diminuire il carico sulle azioni di ogni classe. Così per quanto riguarda le informazioni sui caricamenti esterni è stato scelto di delegarli alla classe LoaderInfo
Questa classe è presente come proprietà contentLoaderInfo nella classe Loader e deve intervenire sulla gestione degli eventi di caricamento, tra i quali spunta nel nostro caso l'evento COMPLETE.
Ora la scelta di scrivere Event.COMPLETE piuttosto che "complete", deriva da una gestione imparata su altri linguaggi per cui quando ci sono nomi definiti si preferisce delegarli a costanti statiche di classi che sono direttamente interessate nella gestione dell'evento, perciò ad esempio avremo Event.COMPLETE, IOErrorEvent.IO_ERROR, ProgressEvent.PROGRESS che equivalgono a scrivere delle stringhe rappresentative di un determinato evento.
Nessuno quindi ti vieterebbe di scrivere:
Codice PHP:
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener("complete", completeHandler);
function completeHandler (evt:Event):void {
// azioni a caricamento avvenuto
}
Per assurdo e perdendo in leggibilità potresti anche scrivere la riga:
Codice PHP:
loader.contentLoaderInfo.addEventListener("complete", function (evt:Event):void { /* azioni a caricamento avvenuto */ });