
Da sempre, nonostante io sia un Flash addicted, odio il sistema di preload degli swf, lo reputo non elegante dal punto di vista dello sviluppo e decisamente macchinoso e artefatto da preparare. Non credo di essere l'unico ad avere questa opinione basta fare un pò di ricerche su google con le parole "preloader" e vi renderete conto della confusione non solo dei newbies ma anche di sviluppatori di vecchia data.
Purtroppo non sembra previsto alcun cambiamento da parte di Adobe per cui ci servirà un barbatrucco anche per il futuro.
Veniamo al dunque allora. Quello che voglio ottenere è un preloader che funzioni in AS3 tramite la document class di Flash CS3 ed evitare di scrivere codice (anche un semplice stop();) sulla timeline.
Alcune considerazioni:
Se vogliamo che il preloader dello swf principale ci faccia vedere lo stato di avanzamento del caricamento del suo peso effettivo dobbiamo riservare il primo frame della TL al movieClip del preloader (barra di avanzamento e quant'altro) e spostare tutto il contenuto della libreria in un altro frame ricordandoci di disattivare l'opzione Export in first frame a tutti i simboli linkati;
Inoltre dobbiamo tener conto del fatto che qualsiasi movieClip vogliamo aggiungere allo stage dalla libreria tramite il suo linkage, dovremo aspettare l'evento Event.COMPLETE del nostro stage principale per fare un richiamo del loro costruttore con la parolina magica new;
In ultimo, dalle mie prove non sono riuscito a mettere a precaricare le classi legate ai simboli di libreria e poi richiamarle come proprietà della document, la cosa strana è che esiste l'opzione nelle impostazioni di pubblicazione per spostare il frame di caricamento delle classi dal primo ad uno successivo, ma se si prova a spostarlo e al COMPLETE si cerca di aggiungerlo allo stage, non viene visualizzato anche se non da nessun errore di compilazione o di runtime, addirittura l'oggetto esiste ma non viene visualizzato dopo l'addChild. Cose strane dal mondo!
Commenti