L'attesa è terminata. Avevamo cominciato a fare il conto alla rovescia quando l'8 Agosto la Macromedia aveva annunciato pubblicamente l'imminente uscita del pacchetto Studio 8 fornendoci già delle succulente anteprime riguardo le molteplici novità dei software più utilizzati per lo sviluppo di applicazioni web: Flash 8, Dramweaver 8 e Fireworks 8 (il pacchetto Studio 8 ora comprende anche FlashPaper e Contribute).
In meno di dieci anni (il software fu acquistato intorno al 1997 dalla FutureSplash che a sua volta fu acquisito nel 1993 quando si chiamava SmartSketch) la punta di diamante di Macromedia, Flash 8, ha subito un evoluzione esponenziale arricchendosi di strumenti e funzioni che hanno portato il programma in uno stadio di maturazione assoluta. Flash è diventato sinonimo di contenuti dinamici e interattivi che permettono di arricchire notevolmente l'esperienza dell'utente dando all'epoca una nuova vita al web (vi ricordate il vecchio motto di quegli anni con cui è nata Macromedia? ).
Otto versioni dopo quella rivoluzione iniziata nel 1998 ci troviamo di fronte ad uno strumento potente, flessibile che ha dato vita addirittura ad un ecosistema di prodotti che ruotano attorno alla sua tecnologia: la Flash Platform, capace di sviluppare ricchi e interattivi contenuti superando i limiti di browser, sistemi operativi e devices. Questa guida vuole essere un'accurata panoramica sulle novità dell'intera linea del prodotto Flash 8 :
- Flash Player 8
- Flash Professional 8
- Flash Video Encoder
- Flash Basic 8
Dalla lista appena elencata avrete subito intuito che una delle prime novità risiede nel nome che abbandona il suffisso MX e ritorna alla classica denominazione numerica, ed inoltre viene marcata la separazione tra una versione Professional ed una Basic. Le differenze della prima rispetto alla seconda sono da ricercare nel differente target a cui esse sono rivolte; la Professional è rivolta ad un target di designer e developer che hanno la necessità di gestire e programmare dinamicamente i loro media con la possibilità di applicare filtri grafici, il supporto del canale alpha sui video, una nuova e più performante gestione del testo, un set di componenti più vasto e ancora molte cose. La versione Basic è per un target di utilizzatori che ha la necessità di importare e gestire differenti media all'interno delle loro applicazioni. Nel seguente articolo andremo ad individuare le caratteristiche di entrambe le versioni, indicando laddove la novità riguarda solo la versione Professional.
Ottimizzazione nella gestione delle Bitmap
Qui tutti i designer tireranno un sospiro di sollievo. Sono finiti i tempi in cui le differenze tra la visualizzazione in fase di authoring e quella in fase di Player generavano risultati differenti. È stata infatti introdotta una nuova proprietà denominata Bitmap Smoothing da selezionare nel pannello di Bitmap Properties che permette di applicare l'anti-alias alle immagini importate. Sempre in tema di ottimizzazione nella fase di rendering delle immagini è stata aggiunta la possibilità di allocare uno spazio di memoria fisica (cache) nella fase di caricamento dell'immagine che quindi anche se usata più volte all'interno del filmato ne aumenta notevolmente il caricamento. La proprietà Cache as Bitmap è applicabile a qualsiasi movie clip o bottone all'interno del filmato flash e non solo quindi a immagini.
L'immagine mostra la checkbox che se selezionata permette di applicare questa funzione all'oggetto selezionato :
È possibile anche attraverso Actionscript usare dinamicamente questa caratteristica utilizzando la proprietà cacheAsBitmap:
mio_mc.cacheAsBitmap = !mio_mc.cacheAsBitmap;
Un esempio pratico dimostra che la proprietà cacheAsBitmap di default è settata a false ci è dato dal seguente codice che dovete semplicemente copiare ed incollare all'interno di un nuovo documento creato con Flash 8:
var container:MovieClip = creaRettangolo();
// Ritorna false, a testimonianza del fatto che la proprietà è settata a false di default
trace(container.cacheAsBitmap);
function creaRettangolo(Void):MovieClip {
var mc:MovieClip = this.createEmptyMovieClip("container", this.getNextHighestDepth());
mc._x = Stage.width/2;
mc._y = Stage.height/2;
var w:Number = 50;
var h:Number = 50;
mc.beginFill(0xCC0066);
mc.lineTo(w, 0);
mc.lineTo(w, h);
mc.lineTo(0, h);
mc.lineTo(0, 0);
mc.endFill();
return mc;
}
container.cacheAsBitmap = true;
trace(container.cacheAsBitmap);
Inoltre all'interno della cartella di sistema driveProgrammiMacromediaFlash 8Samples and TutorialsSamplesActionScriptCacheBitmap è stato inserito un esempio significativo a dimostrazione di quanto esposto.
Migliorie sugli oggetti grafici
Tra le molteplici novità relative alla visualizzazione e grafica del filmato finale, in Flash 8 è stata introdotta un nuovo algoritmo per il calcolo delle curve applicabile ai tool Brush e Pencil attraverso la finestra di dialogo Optimize Curves.
Una nuova gestione delle proprietà degli Stroke evita le fastidiose intersezioni tra vettori e introduce nuovi tipi di stili e nuove proprietà : Cap e Join. La figura sotto mostra quanto esposto:
Anche attraverso Actionscript è possibile applicare le stesse proprietà. Provate a copiare ed incollare il seguente codice:
lineStyle(40, 0xFF00FF, 100, false, "none", "square", "miter", 2);
moveTo(200, 120);
lineTo(100, 90);
lineTo(200, 340);
lineTo(100, 220);
16 nuovi colori possono essere aggiunti durante la creazione di un gradiente controllando la direzione di un punto focale e spostandolo a piacimento con il tool Fill Transform. Tra i vai tipi di gradiente applicabili spicca il nuovo Bitmap gradient che da la possibilità agli utenti di selezionare un'immagine da applicare come riempimento ad una forma vettoriale.
Con questa versione di Flash è possibile applicare un gradiente anche ad uno Stroke!
Effetti grafici e Filtri
Ancora tante novità riguardanti la grafica con l'introduzione di filtri ed effetti grafici tra cui: drop shadow, blur, glow, bevel, gradient bevel, e color adjust. Attraverso il nuovo pannello Filter è possibile selezionare dal menù a tendina uno dei filtri a disposizioni a qualsiasi testo, movie clip o bottone. L'immagine sotto mostra un movie clip a cui è stato applicato un effetto di ombreggiatura (Drop Shadow) ed un effetto Glow:
Ognuno di questi filtri è personalizzabile modificando le proprietà che espone come per esempio la sfocatura sull'asse delle X e delle Y, la qualità o il colore (come vedete nell'immagine).
I Blend Modes invece permettono ai designer di applicare effetti ad oggetti inseriti sullo stage. Per chi già utilizza prodotti di grafica come Fireworks o Photoshop questa nuova caratteristica risulta un concetto già metabolizzato da tempo, ma per Flash si tratta di una novità di questa versione. Direttamente dal pannello Properties, mantenendo selezionato un oggetto sullo Stage, basterà selezionare una voce del menu a tendina Blend ed il gioco è fatto :
Performance ottimizzate e gestione del testo
Su questo argomento a breve verrà dedicato un intero articolo, in quanto si tratta di una novità molto importante che vede l'utilizzo di un nuovo e performante motore di rendering per una resa migliore del testo su schermo. FlashType, così è stato denominato il nuovo motore che è stato licenziato dalla Mitsubishi Electric Research labs (conosciuto con il nome di Saffron), aumenta e migliora la leggibilità dei font con dimensioni piccole, come mostrato in figura :
Anche il resize del testo finalmente non provoca più lo stretching del contenuto del campo di testo, ma lo ridispone invece in maniera intelligente, come qualsiasi altro prodotto di grafica vettoriale!
Anche Actionscript introduce molte novità nei comandi relativi alla gestione del testo come per esempio la proprietà antiAliasType che permette di impostare i diversi tipi di antialias su un campo testo, oppure regolare la quantità sull'antialias con le proprietà Sharpness e Thickness. Questo semplice esempio applica ad un campo di testo dinamico sullo stage a cui è stato assegnato nome istanza mioTesto_txt le due proprietà sopra descritte:
var mouseListener:Object = new Object();
mouseListener.onMouseMove = function():Void {
mioTesto_txt.sharpness = (_xmouse * (800 / Stage.width)) - 400;
mioTesto_txt.thickness = (_ymouse * (400 / Stage.height)) - 200;
trace("sharpness=" + Math.round(mioTesto_txt.sharpness) + ", thickness=" + Math.round(mioTesto_txt.thickness));
};
Mouse.addListener(mouseListener);
La rivoluzione nel video
Non solo non basterà questa breve panoramica per toccare tutte le novità che riguardano il video all'interno di Flash, ma dedicheremo vari articoli a questo argomento. Si vede che il formato FLV (di cui potete leggere questo articolo) ha fatto passi da gigante affermandosi subito grazie ai benefici che eredita dal Flash Player. Gli ingegneri di casa Macromedia hanno lavorato duramente e alla fine i risultati sono sotto gli occhi di tutti.
Un nuovo Codec video è stato acquistato ed "embeddato" all'interno del Flash Player 8 capace di aumentare drasticamente le performance di resa a schermo: stiamo parlando del Codec VP6 della società ON2 (http://www.on2.com/). Oltre ad una resa su video migliore ed dimensione dei file più contenute una delle caratteristiche supportate da questo nuovo Codec è l'Alpha Channel a Runtime, ovvero la capacità di gestire il livello di trasparenza sugli altri contenuti Flash. Questa, che può sembrare una banale novità, apre la porta ad infinite possibilità nello sviluppo di applicazioni con l'integrazione di video. Durante il Roadshow di Macromedia Italia per la presentazione di Studio 8 è stato mostrato un esempio da me realizzato, proprio per dimostrare le potenzialità del canale alfa.
È stata potenziata l'importazione di un filmato all'interno di Flash 8, direttamente dal menu File --> Import che attraverso una finestra di wizard guida l'utente per tutta la fase di Encoding del video permettendo di settare tutte le opzioni relative al video: Video Codec, Qualità, Data Rate, Frame Rate, Dimensioni, Keyframe etc etc.
Durante la fase di importazione è possibile scegliere tra le differenti opzioni per il Deploy del video sia che esso verrà pubblicato su un server di streaming come Flash Communication Server, attraverso il download progressivo sul protocollo http, o da un servizio di videostreaming come può essere quello fornito da VitalStream.
Nella fase di Encoding è ora possibile creare direttamente dei Cue Point, ovvero dei bookmarks che possono essere richiamati via actionscript per esempio per poter posizionare velocemente la testina su punti importanti del nostro video. Ed ecco quindi la possibilità di associare a timing predefiniti del video fino a 16 Cue Point che possono essere di tipo Navigation o di tipo Event. La differenza sta nel fatto che la seconda tipologia scatena degli eventi che possono poi essere intercettati e gestiti da Actionscript. Inoltre ad ogni singolo Cue Point è possibile associare dei parametri nella forma name=value.
Attraverso l'uso di Actionscript è ora possibile andare a leggere tutte le informazioni relative al file FLV compresi i Cue Point ad esso associati. Provate a creare un documento vuoto con un oggetto video a cui assegnate nome istanza my_video (assicuratevi di creare alcuni Cue Point) e poi incollate sul primo frame il seguente codice:
var connection_nc:NetConnection = new NetConnection();
connection_nc.connect(null);
var stream_ns:NetStream = new NetStream(connection_nc);
stream_ns.onMetaData = function(metaProp:Object) {
trace("Intercettazione e stampa dei CuePoint di un video FLV :");
cuePoint(metaProp);
};
my_video.attachVideo(stream_ns);
stream_ns.play("flv/NOMEVOSTROVIDEO.flv");
function cuePoint(meta:Object):Void {
for (var vuota:String in meta) {
switch (vuota) {
case "cuePoints" :
trace("cuePoints: ");
var cuePointArr:Array = meta[vuota];
for (var j:Number = 0; j < cuePointArr.length; j++) {
var mioCue:Object = meta[vuota][j];
trace("tt Tempo : " + mioCue.time);
trace("tt Tipo : " + mioCue.type);
}
break;
}
}
}
Ma l'importazione direttamente dall'IDE di Flash 8 non è l'unica opzione per effettuare l'encoding di video in formato FLV. Installando Flash 8 infatti, viene installato un piccolo programmino stand alone, il Flash Video Encoder che permette di selezionare più video e attraverso semplici metodi di batch processing "encodarli" in un unico passaggio senza doversi fermare nello sviluppo della nostra applicazione con l'ambiente di sviluppo.
Nel momento dell'importazione è possibile associare uno skin al video, ovvero un layout grafico che importa un set di controller grafici e che permette di controllare il video. Per essere pratici con questo procedimento in pochi minuti e con la sola fase di importazione possiamo ottenere questo risultato:
Per concludere questa veloce e riduttiva overview sulle novità nel campo video, non possiamo tralasciare l'aggiunta di nuovo componenti al pannello Component che si arricchisce di un FLVPlayback e dei relativi controlli Custom UI, oltre ai precedenti media component:
Sviluppare con Flash 8 su dispositivi mobili, FlashLite 1.1
FlashLite è un nuovo profilo di sviluppo basato sul Flash 4 Scripting Engine e sugli oggetti Flash 5. Questo player permette a dispositivi mobili, con una potenza di calcolo di memoria e di processo molto ridotta, di caricare contenuti creati con Flash. Flash 8 è l'ambiente di sviluppo ideale per sviluppare contenuti per cellulari da esportare con il profilo FlashLite 1.1.
Con pochi passaggi siamo in grado di cominciare a sviluppare la nostra prima applicazione per cellulari con Flash 8 Professional:
-
Dotarsi di un dispositivo cellulare compatibile con FlashLite. La lista di queste Devices la trovate sul sito Macromedia all’indirizzo: http://www.macromedia.com/mobile/supported_devices/flashlite/
-
Registrarsi al Macromedia Mobile Developer Program direttamente dal sito di Macromedia http://www.macromedia.com/cfusion/entitlement/index.cfm?e=maddpr
-
Una volta registrati sarà possibile scaricare e installare il Flash Lite CDK ( http://www.macromedia.com/devnet/devices/development_kits.html)
-
Acquistare il FlashLite 1.1 Player dal sito di Macromedia per la modica cifra di 10 $ (l’acquisto richiede di fornire il numero IMEI del proprio cellulare a cui si può accedere dal proprio dispositivo digitando la sequenza *#06#)
Con la versione di Flash 8 è stato aggiunto, tra le tante novità, un emulatore di Devices per visualizzare e testare i contenuti su dei template che simulano il contenuto come se fosse fruito direttamente su quel cellulare.
Esistono infatti 85 template da poter emulare, uno per ogni modello di telefono compatibile con FlahsLite.
L'emulatore permette anche di generare errori e messaggi di warning per aiutare lo sviluppatore nella fase di testing and debugging.
Le novità nel linguaggio Actionscript
Vista la quantità di novità presenti nel linguaggio sopratutto dal punto di vista di metodi e proprietà. abbiamo pensato di dedicare un articolo a parte solo su queste features. Nei prossimi giorni uscirà infatti un approfondimento che toccherà le seguenti aree, arricchendole con esempi e tutorial :
-
File Upload: la nuova classe FileReference per poter "uploadare" e scaricare file da server remoto
-
Scale 9: il metodo utilissimo a chi progetta componenti, ma non solo
-
Bitmap Data: la classe Image è ora cresciuta e gli sono stati aggiunti nuovi metodi e proprietà
-
Effetti: le classi per applicare dinamicamente effetti ai nostri oggetti grafici
-
External Interface: far comunicare i file swf col mondo esterno non è mai stato così semplici ed efficace
-
Load Image: caricamento di immagini in formato GIF, PNG e JPG progressivo
Quello che vi anticipiamo subito è che a grande richiesta è stato di nuovo inserita la modalità di scrittura di codice assistita, quella che nel Flash Mx si chiamava Normal Mode per il pannello Action. Adesso anche gli sviluppatori meno esperti o gli utenti che facevano fatica ad utilizzare il codice scrivendolo a mano, potranno usufruire dei drag and drop per applicare i comandi del linguaggio di Flash. La nuova opzione che si trova nel pannello delle Action si chiama Script Assistant ed è mostrata nella figura in basso:
Varie ma non eventuali
Non è semplice in un unico articolo riuscire a toccare tutte le novità della nuova versione di un programma, sopratutto poi quando sono così tante.
In questa sezione abbiamo inserito tutte le novità non minori d'importanza (sono sicuo che molti lettori troveranno in alcune di queste caratteristiche una manna dal cielo per le loro applicazioni) ma che rappresentano comunque delle caratteristiche rilevanti in questa ottava versione di Macromedia Flash.
Nonostante l'ambiente di sviluppo non sia cambiato è stato notevolmente migliorato. Per esempio il pannello Library ora espone la possibilità attraverso la selezione da un menù a tendina di passare velocemente da un libreria di un filmato ad un'altra, senza occupare spazio con tanti pannelli. Inoltre la libreria finalmente riesce a ricordare lo stato dei pannelli aperti anche quando si chiude o apre un file.
Tempo fa ci fu una notizia che destato non poco clamore: Google era in grado di ricercare i file SWF all'interno del suo motore di ricerca. Alla Macromedia hanno allora pensato bene di cercare di inserire una nuova caratteristica che permette di assegnare dei metadata al file swf per aumentare e migliorare la ricerca dei file flash dai motori di ricerca. Gli utenti di Flash 8 possono infatti adesso inserire titoli e descrizioni semantiche da associare al file swf compilato per meglio rappresentare il contenuto del file ed esporlo in maniera efficace al motore di ricerca.
Estendere Macromedia Flash 8 per aumentare le azioni e attività più comuni è oggi ancora più semplice grazie al suo supporto a XUL (Extensible User-interface Language) per creare finestre modali di dialogo anche con l'inserimento di testo da parte dell'utente.
Una delle domande più frequenti nei newsgroup era quella relativa al fatto che per inserire un componente nella library bisognava prima trascinarlo sullo Stage e successivamente cancellarlo. In questo modo il componente spariva dalla Work area ma rimaneva nella Library. Con la nuova versione è possibile trascinare un componente dalla palette Component e trascinarlo direttamente nella Library.
L'estate scorsa quando fu rilasciata la versione 7.2 di Flash avevamo capito che Macromedia aveva dato un peso molto importante nella correzione ed implementazione di nuovi capitoli e paragrafi alla documentazione di Flash. Con la versione 8 l'Help panel è stato riorganizzato e reso più facilmente consultabile rispetto alla vecchia versione di Flash MX 2004. sono stati inoltre risolti molti bugs relativi al comodo ma ancora non perfettamente funzionante tasto Download Help Content e sono stati inseriti 3 nuovi capitoli dedicati solo al mobile e allo sviluppo di applicazioni con FlashLite.
All'interno della finestra Publish Settings che permette di impostare i settaggi per la fase di pubblicazione ed esportazione del filmato, espone adesso una nuova opzione: Post-processor. Ancora non si capisce molto a chi sia rivolta questa opzione. Potrebbe essere usata da società di terze parti per la creazione di swf o, molto più probabile, per dare la possibilità ai file swf di poter essere caricati su differenti devices che usciranno in un prossimo futuro.
Anche se non è stato toccato dal punto di vista dell'interfaccia e delle funzioni il Debugger di Flash è diventato molto più stabile ma ancora non soddisfa gli sviluppatori del prodotto, che avendo raggiunto un momento di maturità dal punto di vista della programmazione, ancora non offre uno strumento utile per la fase di testing e di debugging. Flash è nato come strumento per creare animazioni vettoriale (poi la sua evoluzione ha spostato di molto il posizionamento del prodotto) ed ancora in molte realtà è usato con questo scopo.
Nella versione 8 ci sono novità anche per questi utenti che possono ora avere un controllo maggiore sulle proprie animazioni cambiando la velocità degli oggetti in movimento sullo Stage. Se siete degli sviluppatori indecisi che usano spesso i comandi di undo/redo (annulla/ripristina) con questa nuova versione è possibile specificare un diverso livello di applicazione : il primo agisce sugli oggetti ed il secondo agisce sul documento.
È dall'uso degli shortcut da tastiera che si capisce quanto è esperto un utente di un programma. Purtroppo per impararli tutti a memoria si impiega davvero tanto tempo. Ora è possibile esportare in formato HTML tutti i shortcut e stamparli per averli sempre facilmente consultabili.
Capita spesso che durante lo sviluppo di un'applicazione si tengano degli elementi grafici o dei componenti fuori dai bordi visibili dello Stage (Work Area) per poi farci riferimento ed usarli quando necessario all'interno del nostro filmato. Flash 8 espone un'area che tecnicamente viene denominato Stage Pasteboard ancora più spaziosa per gestire meglio queste situazioni di momentaneo appoggio di oggetti.
Tabella comparativa sulla versione Basic e Professional di Flash 8
In questa tabella sono inserite tutte le caratteristiche di Flash 8 e sono messe a confronto e indicate ove non presenti le differenze tra la versione Basic e quella Professional.
Flash Professional 8 |
Flash Basic 8 |
|
---|---|---|
Expressiveness |
||
Filters (Graphic Effects) | ||
Blend Modes | ||
Advanced Easing Control for Animation | ||
ActionScript 2.0 | ||
Object-based drawing mode | ||
FlashType Text Rendering Engine | ||
Templates | ||
PDF and EPS (Adobe Illustrator 10) support | ||
Data Components | ||
UI Components | ||
Mobile Authoring |
||
Publish to Flash Lite | ||
Interactive Mobile Device Emulator | ||
Mobile Templates | ||
External Players | ||
MIDI Ring Tone Support | ||
Professional Video |
||
Embedded Video | ||
External Video | ||
Advanced Video Import Workflow | ||
Advanced Video Component | ||
Stand-alone Video Encoder | ||
Flash Video Exporter Plugin for Quicktime | ||
Advanced Encoding Options | ||
Embedded Cue Points for FLV files | ||
Alpha Channel Support | ||
User Experience |
||
Script Assist (formerly called "Normal Mode") | ||
Advanced Library | ||
Spell Checking and Search/Replace | ||
Advanced Video Component | ||
Project Panel | ||
Extensibility Architecture | ||
SWF Metadata | ||
Accessibility |
Flash Player 8, quando sui nostri schermi ?
Di questo argomento ho discusso anche in un post sul nuovo blog di html.it. Con il nuovo player 8 in circolazione c'è da aspettarsi un lasso di tempo più o meno corto in cui gli utenti scaricheranno l'update della nuova versione e saranno pronti a fruire di contenuti creati con l'ultima versione di Flash.
La Macromedia ci rassicura su questo fronte, assicurandoci che questi tempi saranno brevissimi e
Primo fra tutti è la modesta quantità di Kbyte coinvolta nel download per il passaggio dalla versione 7 alla nuova. Anche per le connessioni più lente, con pochi secondi sarà possibile effettuare l'aggiornamento.
Molto più importante e decisivo è il pannello dei settaggi del Flash Player 7 che per default ha il compito di controllare ogni 30 giorni se è presente una versione più recente.
Questo settaggio si trova online sul sito di Macromedia nella sezione relativa al Flash Player Settings Manager. Credo che solo gli utenti più smaliziati ne siano a conoscenza. Questo significa che possiamo dormire sonni tranquilli e cominciare a proporre al nostro prossimo cliente un'applicazione che già sfrutta una delle tante features del Flash Player 8.
Ultimo elemento per un veloce penetrazione, ma non per importanza, è la procedura di installazione notevolmente semplificata, con l'Express Install che attraverso una finestra che compare internamente al contenuto .swf che si sta scaricando, effettua per noi il downaload e procede all'installazione che in pochi secondi viene portata a termine.
Non vi manca altro che scaricare il programma e iniziare le vostre prove.