A tutti quelli che lavorano con flash da tempo, ma anche a tutti quelli che non ci hanno mai lavorato e navigando sul web si sono abituati ormai da tempo a vedere animazioni in flash, piccoli siti o interi portali, animarsi sotto i loro occhi con immagini suono e quanto altro, oggi è tempo di imparare il nuovo linguaggio OOP della Macromedia.
In ogni versione di Flash passata, per chi ha seguito il corso dell'evoluzione di questo affascinante ambiente di lavoro, il software ha introdotto diversi cambiamenti e migliorie. Tra le tante la possibilità di lavorare con database in collaborazione con pagine dinamiche, l'importazione dell'XML, l'introduzione di alcune classi di interfaccia da utilizzare per le applicazioni o form, la scrittura di classi personalizzate, il video on-demand che permette la riproduzione su tutte le piattaforme diverse utilizzando il Flash Plugin e tanto tanto altro.
Flash 5 all'epoca, aveva diversi problemi di esecuzione del codice, molto limitato e più lento di qualsivoglia altro linguaggio di programmazione. Con l'avvento di Flash MX, la versione 6 del programma, sono state inserite alcune nozioni e classi nuove ed è stato sensibilmente velocizzato il sistema di riproduzione, ma purtroppo ancora alcune problematiche minavano la stabilità e la velocità dell'ambiente di esecuzione.
Nella versione 7, è stato ufficialmente presentato da Macromedia la versione 2.0 di Actionscript; ciononostante come di buona norma è stata mantenuta la compatibilità con il vecchio standard l'1.0. Tante volte si è detto che queste migliorie in termini di performance tanto blasonate dalla Macromedia non siano realmente visibili e vediamo perchè. Tanto per cominciare le migliorie non sono basate sul motore grafico, essendo gia stabile e dipendente dal tipo di processore utilizzato, ma i veri miglioramenti sono nella velocità con cui flash esegue il codice ottimizzato nella versione 2.0 del nuovo linguaggio.
Tipizzazione dei dati
Il problema numero 1 delle vecchie versioni è che Flash doveva a volte indovinare da solo il tipo di dato utilizzato nel corso del filmato.
Es.
costoDelProdotto = 50;
risultato = "Il vostro prodotto costa €." + costodelprodotto;
In questo script flash deve capire da solo che il costo del prodotto è un numero, che il dato utilizzato nella seconda riga è una stringa, ma sommata ad un numero considerato come stringa ma che precedentemente era un numero. Capite anche voi che se abbiamo 1.000 righe o più di codice digitato in questo modo, Flash per interpretarlo deve per forza rallentare. Interpretare, non è solito dei linguaggi di programmazione, leggere lo è. Chiaramente Macromedia, per fare avvicinare anche i meno esperti, ha realizzato dapprima un tipo di linguaggio che non fosse troppo rigido. Ad oggi lo stesso script non funzionerebbe, costoDelProdotto non verrebbe riconosciuto. Per facilitare la lettura a Flash lo stesso script andrebbe scritto cosi:
var costoDelProdotto:Number = 50;
var risultato:String;
var risultato = "il vostro prodotto costa €. " + costoDelProdotto.toString();
Come vedete il codice sembra parzialmente allungato, ma non preoccupatevi, l'allungamento è relativo alle definizioni degli oggetti exNovo, questa piccola fatica verrà ripagata dal nuovissimo CodeHint dell'editor di Actionscript. Vediamo ora altre sintassi di esempio:
meteo = new Array();
diventerà
var meteo:Array = new Array();
un funzione che accetta dei dati sarà cosi
area = function (latoA:Number, latoB:Number, latoC:Number, nomeTriangolo:String) { }
e cosi via.
Altre sintassi che scatenano il nuovo Code Hint sono i nomi delle istanze con le aggiunte di suffisso, come per esempio _mc per i MovieClip, _btn per i Bottoni, e _txt per i Campi Testo.
Il Code Hint, più che aiutarvi a risparmiare qualche tasto digitato, vi fornisce a tempo di record la lista delle proprietà della Classe che state utilizzando, risparmiando tempo nell'andare a cercare su internet o nei tutorial in linea l'elenco completo.
Ora, non è che se non imparate immediatamente AS 2.0 non potrete più lavorare con Flash, ma è buon uso e norma sfruttare ed utilizzare tutto quello che con l'andare del tempo possa darci un migliore controllo dei nostri filmati o applicazioni e scoprire che una volta imparato questo nuovo linguaggio, possiamo anche cominciare a dare un'occhiata a Java e C#, che hanno una modalità di sintassi molto simile. Inoltre lo standard AS 1.0 non rimarrà all'infinito, quindi meglio imparare subito con calma che trovarsi a dovere imparare rapidamente tutto in una volta sola!
In ogni caso alcune delle cose che utilizzavate prima restano invariate, come:
// 1) il controllo dei movieClip
animazione_mc.gotoAndStop("fine");
animazione_mc._y = 200;
animazione_mc._alpha = 50;
// 2) le espressioni
areaTriangolo = (lato1 * lato2)/2;
nomeCliente = nome + " " + cognome;
// 3) gli operatori condizionali
if (costo >= 50) {
comprare = false;
} else {
comprare = true;
}
// 4) e le istruzioni cicliche
for (i=0; i <= numeroFoto; ++i) {
// azioni..
}
Come nelle versioni precedenti fate attenzione alle parole riservate che flash utilizza come sintassi primaria, come break, this, set, default, etc.
Editor di ActionScript
L'editor Actionscript di flash non ha subito sostanziali variazioni, ma il suo buon uso potra farvi risparmiare una marea di tempo tra navigazioni tra i movi, e su internet, per cercare l'utilizzo dei vari comandi. Analizziamo ora l'editor di Actionscript
ZONA EDITING: Molto semplice da capire, qui potete digitare la sintassi dei vostri script editando sia i frame che i movie clip.
COMANDI: Nella zona comandi è possibile tramite il doppio click inserire automaticamente il comando desiderato cercando e selezionandolo in maniera logica tra le cartelle delle classi e degli operatori. Siccome molte volte per motivi di spazio questa zona viene tenuta nascosta grazie ai tasti di scomparsa che si possono trovare in tutte le palette di Flash, in tal caso la stessa oprazione puo essere esercitata con il tasto .
Nel pannello comandi c'e inoltre una cartella di colore giallo che si distingue tra le altre. Se cercate un comando specifico che non riuscite ad individuare tramite la procedura logica sopra descritta, qui avrete tutti i comandi di base ed extra, in ordine alfabetico.
NAVIGAZIONE SCRIPT: Questa sezione che tutti normalmente ignorano è un utilissimo strumento di lavoro, grazie al quale potete editare qualsiasi script nel filmato sia esso in una timeline o in un movie clip.
Es. State modificando uno script in un MovieClip situato dentro altri 5 MovieClip e non ricordate il nome di una variabile nella _root. Normalmente dovreste uscire da tutti e cinque i MovieClip, visualizzare il nome della variabile selezionando il frame o il MovieClip giusto e rientrare nei 5 MovieClip dove vi trovavate all'inizio dell'operazione. Questa procedura abbastanza odiosa e che spreca qualche decina di secondi o minuti del vostro tempo, può essere evitata e ridotta a pochi secondi, semplicemente selezionando il frame dal pannello di navigazione, leggere e riselezionare il frame sullo stage per editare quello che volevamo, senza muoverci fisicamente nella struttura. A volte, quando bisogna leggere più cose e siamo timidi nel copia/incolla per non incasinare i nostri gia incasinatissimi script, tendiamo a memorizzare nella mente i nomi e i dati e quando finalmente siamo arrivati dove dobbiamo scriverli... non ci ricordiamo più!! ;-)
CERCA: Un giorno, non subito, avrete delle schermate nell'editor lunghe 1.000 righe, vi immaginate se doveste cercare una cosa dopo mesi, ad occhio, in uno script cosi lungo. Ecco, questo strumentino molto semplice, vi potrà aiutare quando sarete in queste condizioni.
FIND & REPLACE (trova e sostituisci): Questo strumentino si rivelerà molto utile, quando avrete dato un nome poco chiaro o da sostituire con un altro, con un click, in 2 > 2.000 posti, evitando errori di battitura. Basta inserire la parola/e o la stringa/e da cambiare e in qualunque posto dello script dove la voce che avete specificato esiste, verrà cambiata con quella nuova.
Questa operazione si puo fare in due modi, cliccando NEXT e REPLACE modificando voce per voce, controllando parsimoniosamente che non venga sostituito qualcosa che non deve essere sostituit. Oppure quando siete sicuri che non verrà intaccato lo script dove non deve, con REPLACE ALL, il software modifica le parole in tutto lo script da sè!
PERCORSO TARGET (percorso dell'obiettivo): Grazie a questa funzione dell'editor, potete assegnare il percorso din un movie clip specifico senza andare a visualizzare tutto il percorso del vostro clip ad uno ad uno a ritroso segnandovi tutto. È possibile assegnare il target in modo relativo, segnalando il percorso partendo dal punto in cui vi trovate, o in maniera assoluta, segnalando la posizione del vostro clip partendo dalla _root (che è a timeline principale). Fate attenzione, se il percorso che state segnalando in maniera relativa è a ritroso, rispettivamente da dove vi trovate, non avrete problemi di sorta, ma nel momento in cui dovrete selezionare un clip all'interno di un'altro, sia relativamente che assolutamente, dovrete anche avere assegnato uno nome istanza ai clip che si trovano sul percorso.
Consiglio: Il nome dei MovieClip che utilizzate nella libreria (quando fate F8) sono per vostra organizzazione esclusiva, quindi utilizzate nomi che vi facciano capire guardando la libreria, cosa state guardando. Per quanto riguarda l'utilizzo di actionscript e dei comandi dei MovieClip, Flash fa riferimento al nome istanza, che dovrete assegnare al movie clip ogni volta che lo posizionate sullo stage pronto per l'utilizzo.
CHECK SYNTAX (controllo sintassi): Un modo facile e veloce per controllare che lo script del frame o del clip correntemente selezionati, sia corretto in ogni sua parte. Grazie alla finestra di Output, che si puo visualizzare premendo il tasto F2, nel caso che non comparisse da se, potete visualizzare con precisione il tipo di errore commesso e la riga in cui sussiste. Vi consiglio di utilizzare sempre questo strumento dopo ogni script, a volte si possono commettere degli errori di digitazione sciocchi, che pero vi costringono, al momento dell'esportazione del filmato, ad andare a correggere... e a volte possono essere tanti.
INDENT (indentatura del testo): Come ben saprete, un codice ben indentato, facilita di gran lunga la lettura e la modifica. Capita a volte di modificare script complessi dove l'indentatura va a farsi un po' desiderare. Grazie a questo tasto il codice verrà indentato automaticamente in maniera perfetta. Questo comando vi avverte in oltre di eventuali errori di chiusura delle parentesi, segnalandolo sempre nella finestra di Output. Cosi facendo potrete usare il Check Syntax, sistemare l'errore e re-indentare di nuovo il vostro script.
CODE HINT ACTIVATOR (attivatore code hint): Come abbiamo detto la novità dell'editor di Flash Mx 2004 Professional è proprio il nuovo Code Hint che scatta in automatico alla presenza delle nuove categorie di scrittura. Succede a volte pero di andare a modificare uno script già fatto, e di non ricordarsi i parametri di uno specifico comando.
Come vedete questo tasto, riattiva il Code Hint suggerendovi il tipo di dato richiesto, aiutandovi nella risoluzione dei problemi.
REFERENCE (guida di riferimento): Cliccando qui avrete a disposizione la guida in linea di tutti i comandi, le proprietà e i metodi delle classi di actionscript, non che la guida in linea sulle principali funzioni e strumenti di Flash. Personalmente sfrutto questo strumento in maniera più produttiva, infatti, quando non ricordo i metodi o le proprietà di una particolare classe, la seleziono, premo il reference e ottengo subito la pagina di spiegazione ed uso della classe che avevo selezionato.
DEBUG (simulatore del codice): questo tasto contiene all'interno 3 comandi. Set Breakpoint, che serve in fase di debug per fare fermare la riproduzione del codice sulla riga dove il breakpoint è stato inserito (riga che non viene inclusa nella riproduzione). Remove Breakpoint che come si può immaginare rimuove il breakpoint sulla riga selezionata. Remove all breakpoint, utilissimo comando una volta terminato il debug, che vi permette di rimuovere automaticamente i Breakpoint ovunque essi siano nella pagina di editing.
Consiglio: Ritengo i primi due comandi abbastanza inutili, in quanto potete inserire o rimuovere i Breakpoint direttamente cliccando alla sinistra del numero della riga della pagina per inserirne uno, e ricliccarci sopra per rimuoverlo. (chiaramente per fare tutto ciò dovete avere visibili i numeri delle righe della pagina di editing, cosa che consiglio vivamente per ricontrollare in caso di errore. I numeri di riga si attivano con CTRL+SHIFT+L o cliccando sul tasto successivamente spiegato e su view line number - visualizza numeri riga)
OPTION (opzioni): Questo tasto ha tre funzioni. La prima visualizza i tasti di scelta rapida dei principali comandi di actionscript come il gotoAndPlay() e via dicendo
Il secondo comando l'abbiamo spiegato prima, visualizza in numero di riga nell'editor.
Il terzo comando simula un a capo automatico, secondo la l'impostazione della larghezza dell'editor, che vi permette di leggere il proseguo di script che sono più lunghi e nascosti, senza dovere scrollare orizzontalmente.(attenzione l'a capo è una simulazione perchè non si possono mandare a capo fisicamente le righe, in quanto fanno parte di uno script che viene letto e riprodotto con precise formule di impaginazione.)
PIN SCRIPT (punteruolo di fogli): Vi ricordate quando parlavamo del navigatore di script per evitare di dovere navigare in mezzo alla grafica per trovare il frame o il movie dove dovremmo prelevare dei dati? Questo comando è un compromesso tra il navigatore e la ricerca manuale tra i disegni. Supponiamo di dovere operare continuamente su 2 > 10 finestre di script, anche con l'aiuto del navigatore non sarebbe facile, ma soprattutto non sarebbe un lavoro ottimizzato. Il pin serve proprio a questo. Selezionando il frame necessario e cliccando pin, si blocca il frame come una scheda sull'editor, selezionando altri fame utili e facendo la stessa operazione, ci ritroveremo tutte le schede nell'editor a portata di mano e potremo lavorare su tutte semplicemente cliccando quella che ci serve.
Spero di avere portato ai vostri occhi le innumerevoli novità e anche le funzionalità che c'erano anche nella versione precedente ma a cui magari non avevate mai fatto caso o non vi eravate mai chiesti a cosa servissero.
Buona fortuna con Flash Mx 2004 Professional