| 15 Settembre 2009
Lesson 1 - Sentinelle
Questa piccola introduzione è sia per i neofiti di flash, sia per chi ha sempre programmato nelle ormai quasi defunte Action Script 2, che come me, credo all'inizio posso trovare qualche piccola difficoltà con le Action Script 3, da ora in poi definite AS3 per comodità.
Partiamo da i cambiamenti più significativi, la gestione eventi, non più utilizzabile attraverso i metodi (on, onClip ecc) ma attraverso una struttura gerarchica di classi dinamiche e statiche.
Immaginiamo di avere un oggetto movieClip o sprite (definiremo poi cos'è uno sprite) e di chiamarlo mc.
Il nostro “oggetto” in questo caso è di tipo dinamico, quindi possiamo anche aggiungergli metodi e caratteristiche (cosa fattibile anche attraverso file as esterni ed importazioni), ora, qui previene la differenza sostanziale, dato che una volta si doveva fare affidamento su funzioni come onClipEvent(evento), mentre ora dobbiamo “aggiungere” una sentinella, o listener, all'oggetto, proprio come se stessimo aggiungendo una caratteristica o metodo, come mostra l'esempio:
L'esempio funziona in questo modo, nello stage c'è un movieClip che si chiama mc (attenzione, non l'oggetto della libreria ma l'istanza che lo rappresenta deve avere questo nome), esso è formato da due frame, uno con un quadrato nero ed uno con un quadrato blu.
Nell'esempio dimostriamo come applicare un evento ad un oggetto, i due tipi diversi di scrittura (una con scrittura interna e l'altra esterna), l'estensione dell'oggetto movieClip (dinamico, ma non fa ereditare la propria dinamicità) aggiungendo la caratteristica “colore”-
Gli eventi sono corrispondenti a Mouse roll over e roll out (mouse sull'oggetto/non sull'oggetto).
Come vedete, non si applicano funzioni ma si aggiunge alla classe la sentinella o il metodo che essa rappresenta all'oggetto, con parametri equivalenti a (TIPO DI EVENTO, FUNZIONE DA APPLICARE AD EVENTO AVVENUTO).
Allo stesso modo si può rimuovere la sentinella ad un oggetto tramite il metodo removeEventListener(Evento,Funzione).
Passiamo ai metodi di scrittura, fino ad ora abbiamo definito per comodità “funzione” l'azione che avviene dopo l'evento, ma nel nostro caso, dato che non dobbiamo restituire nulla, optiamo per delle procedure.
La differenza sintattica è poca, dato che la cosa che cambia è un void appena dopo la chiusura delle parentesi:
mc è un oggetto di classe movieClip, che non ha una caratteristica “colore”, ma essendo classe dinamica, non appena la assegniamo, viene automaticamente aggiunta e inizializzata per la classe di quell'oggetto (non per la classe in se, attenzione!!!).
Con il trace del codice possiamo tenere d'occhoi il cambiamento di questa caratteristica, che nelle funzioni cambia seguendo l'oggetto temp, inizializzato a sua volta grazie al passaggio del parametro event, in cui event.target rappresenta l'oggetto stesso al quale è stato aggiunto il listenere che ha richiamato la funzione.
Come notate dal codice funzionante, possiamo avere un frame nello stage principale, e 2 nel movieClip che rappresenta il contenuto, ma se si vuole, si può anche assegnare un'istanza interna con parametri che variano, senza bisogno di più frame.
Per ora questo piccolo esempio dei listener per gli eventi di action script 3 è finito, sto lavorando ad un piccolo articolo con video corso per la generazione di un menu associato a dei contenuti, associato ad una struttura della timeline che permette di generare il menu una sola volta senza dover duplicare gli oggetti ed assegnargli istanze ad ognuno.








