10 motivi per passare ad Adobe Flash CS3
Lunedì 26 Novembre, 2007
Per alcuni sviluppatori basta sapere che esiste una nuova versione del loro pacchetto di sviluppo preferito per correre ad acquistare l'aggiornamento. Altri, e non a torto, mantengono una maggiore calma e "pretendono" di conoscere gli effettivi miglioramente della nuova versione prima di modificare le proprie abitudini. Nel caso di Adobe Flash CS3 non c'è molto da attendere, visto gli innumerevoli cambiamenti che ha subito il pacchetto da quando Macromedia è stata acquisita da Adobe.
Ecco, quindi, 10 semplici, ma importanti, motivi che, a mio personale parere, bastano per convincersi ad eseguire l'aggiornamento ad Adobe Flash CS3. Mi soffermerò, ovviamente, solo sulle caratteristiche che mi hanno colpito personalmente; questo non vuole essere un elenco esaustivo di tutte le numerose novità introdotte con la suite CS3, solo un volo radente per anticipare qualche features della versione CS3.
1. Installazione
L'installazione è gradevole e rapida, rispetto alle precedenti versioni. Si integra, tra l'altro, con tutti i prodotti Adobe (Dreamweaver CS3, Photoshop CS3 extended, ecc...) il che rende le operazioni di installazione/rimozione ed aggiornamento un vero piacere.
2. Compatibilità a ritroso
Una questione spesso sottovalutata, ma sempre tenuta in considerazione nella storia di Flash: la possibilità di gestire le precedenti versioni del prodotto. In Flash CS3 ci sono tutti gli strumenti sia per migrare che per manipolare le precedenti versioni dei nostri filmati. Troviamo questa possibilità sia nel debug (un debug separato per Actionscript 2.0 e Actionscript 3.0) sia in fase di compilazione del filmato. Scrivere da subito applicazioni Flash in Actionscript 3.0 potrebbe essere controproducente in determinati contesti. Se il vostro sito target ha un traffico notevole potrebbe capitare che molti utenti non hanno ancora installato le ultime versioni del Player Flash per il browser e quindi non vedrebbero il filmato. Tuttavia, come già detto, Flash CS3 permette di sviluppare applicazioni Flash mantendedo la compatibilità a ritroso e quindi non vedo in questo un grosso ostocalo nell'upgrade del prodotto.
3. Interfaccia grafica e IDE
L'IDE di Flash CS3 (come quella di Dreamweaver CS3) è stata rivisitata al meglio. I pannelli (vedi figura qui a sinistra), spesso scomodi nelle precedenti versioni, sono stati completamente ridisegnati e adesso il loro uso è notevolemente meno invasivo.
Inoltre la possibilità di ridurre ad icona i pannelli (vedi figura qui a destra) è una vera trovata che rende l'interfaccia gradevole e funzionale. Quando un pannello si trova in modalità icona occupa molto meno spazio e con un semplice click è possibile aprire il pannello principale prima sempre visibile.
Tutta l'IDE, insomma, è stata rivista compresa la zona centrale con la finestra per l'editing grafico e del codice. Non vi segnalo tutti i cambiamenti altrimenti vi rovinerei la sorpresa...

Per gli amanti del design, vettoriale e non solo, segnalo subito l'introduzione di due nuovi oggetti grafici manipolabili in design-time: Rettangolo di base e Ovale di base, come vengono indicati. Nelle precedenti versioni di Flash l'oggetto Ovale di base, ad esempio, veniva "simulato" via codice da varie librerie, ora non più necessarie. È stata aggiunta la possibilità di generare ovali sofisticati e rettangoli con il controllo dei bordi. Ecco, qui a sinistra, cosa è possibile realizzare in design-time con il nuovo oggetto Ovale di base. Abbiamo la possibilità di decidere un angolo iniziale e un angolo finale, similmente alle "torte" di molti istogrammi. Inoltre è possibile impostare un raggio interno, in modo tale da generare l'immagine che vedete in figura.
Nuovo Pannello delle Proprietà del Ovale di base
Stessa sorte è toccata ai rettangoli, che ora diventano estremamemte più semplici da gestire, soprattutto quando abbiamo a che fare con bordi arrotondati. Anche in questo caso tutto si svolge in design-time, basta cliccare sui "pallini" che vedete in figura qui a sinistra per modificare in tempo reale l'ampiezza del bordo del rettangolo.
Questi oggetti "particolari" nascondono un segreto, ma basta provare ad utilizzarli per capire dov'è il trucco. Tuttavia ci sono molte cose interessanti che si possono fare e dire su queste nuove funzionalità. Mi ripropongo tuttavia di parlarne prossimamente.
Nuovo Pannello delle Proprietà del Rettangolo di base
4. ActionScript 3.0
Le modifiche e le novità al linguaggio Actionscript, che passa dalla versione 2.0 alla 3.0, da sole potrebbero bastare a giustificare l'upgrade. Prima di tutto è stato rivisto tutto l'albero della gerarchia degli oggetti, ora organizzato in modo estremamente più efficente e con notevoli aggiunte e migliorie. Nella documentazione è stata prevista una sezione apposita (Migrazione da Actionscript 2.0) che elenca i vecchi (Actionscript 2.0) metodi/proprietà e le nuove sostituzioni. Questa tabella, particolarmente esaustiva, sarà utile agli sviluppatori Actionscript 2.0 per orientarsi nel rintracciare funzioni che hanno cambiato nome o posizione. Ad esempio la proprietà _alpha non esiste più. L'underscore (_) è stato mandato in pensione (era ora) e le proprietà come x, y, width ed height fanno parte della classe (package) flash.display.DisplayObject.
La nuova alberatura cancella quindi moltissime funzioni, prima posizionate in una sorta di limbo e ora inserite correttamente in una gerarchia di oggetti padre/figlio (o package) che le rendono più facilmente rintracciabili. L'editing degli script, inoltre, è stato migliorato, con una nuova toolbar già usata in Dreamweaver, come mostrato in figura qui sotto.

Editing di un file Actionscript (.as)
![]()
Toolbar durante l'editing del codice di un frame
Ora è possibile, ad esempio, comprimere in codice a partire dalle parentesi graffe o selezionare (finalmente) una sezione di codice e commentarla/de-commentarla con un solo click!
Queste rivoluzioni rendono Actionscript 3.0 un linguaggio più solido, avvicinandolo a chi è abituato a lavorare in Java o C++. È stata infatti eliminata anche la possibilità di aggiungere codice ai MovieClip o Pulsanti (selezione del MovieClip e tasto F9), cosa sgradevole per gli sviluppatori che tendono a vedere solo il codice e non gli pseudo-eventi simulati. Ora, quindi, Actionscript 3.0 gioca un ruolo fondamentale nello sviluppo di filmati Flash e anche la sua sintassi è stata migliorata per questa ragione.
5. Tipi dato
Finalmanete, dopo il tipo void, ecco arrivare anche int e uint. Due nuovi tipi dato di enorme utilità. In Actionscript 2.0 si aveva a disposizione l'unico tipo dato Number (53 bit usato per qualsiasi cosa), che di fatto corrispondeva ad un numero a virgola mobile a doppia precisione. Inutile dire che questo tipo dato era a dir poco sconveniente nel caso di una classico ciclo for da 1 a 10! Il nuovo tipo int, invece, corrisponde ad un intero a 32bit (231 -1 = 2.147.483.647 valori possibili) con segno. Questo permette di sfruttare l'elaborazione matematica e le performance dei numeri interi direttamente dalla CPU, quando il caso lo richiede, esattamente come in C o C++. Il tipo uint (unsigned) è identico ma senza segno.
6. throw, try..catch..finally
La gestione degli errori in Actionscript 3.0 è diventata semplice e al contempo sofisticata. È stata introdotta una più amplia classe Error dalla quale è possibile intercettare tutte le eccezioni di sistema, anche quegli errori runtime che spesso sfuggivano con Actionscript 2.0. Diventa così più spontaneo e semplice l'uso della sintassi (OO) try..catch..finally che permette di generare e gestire gli errori all'interno del codice in modo essenziale ed evoluto. Inoltre non ci sono alcune restrizioni presenti ad esempio in Java. Basta quindi con le catene infinite di if..else o switch..case generati appositamente. Con try..catch..finally e il nuovo engine di errore è possibile gestire eccezioni di sistema, ma soprattutto proprie eccezioni create ad hoc, il che rende il codice estremamente più leggibile. Questa novità impatta anche nella gestione generale di debug, riscritta completamente per Actionscrpt 3.0. Nelle impostazioni di pubblicazione, infatti, troviamo alcune novità che sottolineano le differenze con la gestione del debug delle precedneti versioni di Flash.
Prima tra tutte in Flash CS3 il debug deve'essere esplicito ed è stato introdotto un sistema proprietario per il debug in remoto.
7. Classi & Sprite
Come accennato sopra l'alberatura delle classi è stata rivista ed ampliata. La novità che più salta agli occhi è la presenza della nuova classe Sprite, una sorta di MovieClip più leggero (è stata introdotta anche la classe Shape per i grafici di base... e una classe Graphics... ma non voglio dirvi tutto). In particolare è ora possibile gestire le classi, grafiche o visive e non, nel loro modo più appropriato e non come succedeva prima dove una netta differenza separava MovieClip da Array, ad esempio. Quando si crea una simbolo, tanto per capirci, si nota subito una differenza fondamentale nella finestra delle proprietà:
Flash CS3 associa in automatico una classe al nostro simbolo (classe che verrà generata runtime durante la compilazione) a prescindere se noi l'abbiamo effettivamente creara o no. Questo rende il nostro simbolo una classe vera e propria e quindi permette di usare l'operatore new come per gli altri tipi di classi/dato. Inoltre è interessante notare l'indicazione della classe base (flash.display.MovieClip). Utilissime le due iconcine
accanto a Classe e Classe base che permettono rispettivamenrte di covalidare ed aprire nell'editor la classe descritta. Tutto questo si traduce nella splendita notazione Actionscript 3.0 per la creazione dinamica di un MovieClip. Addio, quindi, al vecchio attachMovie() che diventa ora:
-
var ms:MovieClip = new Horror();
-
addChild(ms);
8. Dynamic, public, protected e private
Altro passo avanti nell'allineamento alla programmazione OO lo troviamo nella definizione delle classi. Oltre all'introduzione della parola chiave dynamic, usata per creare esplicitamente classi che possono essere estese runtime dopo la loro creazione (questo era un comportamento di default in Actionscript 2.0, ma ora in Actionscript 3.0 le classi sono per default sealed - chiuse - e quindi non espandibili a runtime), è stata migliorata la gestione della protezioni di metodi e proprietà. In Actionscript 2.0, infatti, si aveva a disposizione solo public (default) e private per distinguere metodi e proprietà publiche e private. Tuttavia questa non era una gestione ottimale. Come accade in Java, ad esempio, è stata introdotta la più efficace protected (che in Actionscript 3.0 funziona similmente a private) che permette di oscurare metodi e proprità all'esterno, sia in fase di compilazione che in runtime.
9. Package e namespacing
Anche i filmati sono una classe. Questo significa che il codice principale che gestisce un filmato può essere inglobato in una classe il che rende il tutto un vero ambiente Object Oriented. Il concetto di Package (package), in generale, oltre ad estendere il filamato principale permette di create dei "pacchetti" che semplificano la gestione del namespacing utilizzato nelle precedenti versioni di Flash. Tutta quell'alberatura a punti può essere ora omessa a vantaggio dei package molto più funzionali.
10. Costanti
Ci sono alcune funzioni di base imprescindibili in qualsiasi linguaggio. Le costanti, ad esempio, fanno parte di queste. Alcuni non apprezzano la differenza tra costanti e variabili, tuttavia la differenza c'è ed è anche importante. In Actionscript 3.0 sono state introdotte le costanti tramite la parole chiave const. Così come l'assembly ha MACRO, il C define, ora Actionscript ha const il chè non guasta.
Mi rendo conto di non aver approfondito nessuno dei dieci punti sopra esposti, com'era tuttavia da immaginarsi, mi riprometto di farlo in modo completo ed esteso in futuro, come al solito






















Julius ha detto:
Direi 10 ottimi motivi… =)
upnews.it ha detto:
undolog » Blog Archive » 10 motivi per passare ad Adobe Flash CS3…
Per alcuni sviluppatori basta sapere che esiste una nuova versione del loro pacchetto di sviluppo preferito per correre ad acquistare l’aggiornamento. Altri, e non a torto, mantengono una maggiore calma e “pretendono” di conoscere gli effettivi migl…
a » 10 motivi per passare ad Adobe Flash CS3 ha detto:
[...] Check it out! While looking through the blogosphere we stumbled on an interesting post today.Here’s a quick excerptIn Actionscript 2.0, infatti, si aveva a disposizione solo public (default) e private per distinguere metodi e proprietà publiche e private. Tuttavia questa non era una gestione ottimale. Come accade in Java, ad esempio, … [...]