Flash e il riutilizzo del codice: componenti e librerie condivise
Mercoledì 31 Ottobre, 2007Nell’ottica della programmazione ad oggetti viene spontaneo realizzare componenti per riutilizzarli in altri progetti, soprattutto se questi componenti sono general-purpose. L’uso delle classi è sicuramente un primo passo nel riutilizzo del codice, tuttavia, spesso, queste classi sono legate a MovieClip anche estremamente complessi. Così nasce la necessità di “importare” sia il codice ActionScript della classe (cosa assai facile) ma anche tutti i simboli ad esso associato.
Creare Componenti in Flash
Questa strada è sicuramente la più corretta da un punto di vista strettamente logico. Tuttavia, almeno nella versione Flash MX, creare un componente che quantomeno si avvicini a quelli forniti con l’ambiente di sviluppo non è impresa da poco. I componenti, infatti, soprattutto quelli visuali, richiedono tutta una serie di procedure (come l’inclusione delle interfaccie UIObject o UIComponent) e la scrittura estremamente accurata della classe legata al nostro componente. Rimane comunque il fatto che creare un componente è un’esperienza interessante da fare, ma il tempo di sviluppo è davvero notevole. Inoltre un componente come si deve supporta la modalità in designtime o authortime che altro non fa che proporre un’anteprima di quello che accadrà a runtime. È possibile associare un’icona e una documentazione perfettamente integrabile nell’IDE di Flash, con tanto di intellisense durante la scrittura del codice. Ecco quindi che scegliere questa strada comporta un dispendio temporale notevole, probabilmente riservato a particolari progetti dove, ad esempio, sia proprio il componente l’obiettivo del progetto.
Ci sono software house specializzate nella produzione di componenti per Flash, sia come prodotti gratuiti che a pagamento. Esclusi quindi i componenti estremamente semplici, dove ad esempio non c’è interfaccia utente, questo metodo è ottimo ma temporalemte dispendioso e quindi poco usato nella maggioranza dei casi.















JingProject






