Ciao a tutti !
Ho notato che c'è una buona parte di utenti di FlepStudio che vorrebbe apprendere Actionscript 3.0 dalle prime basi.
Alcuni Flash Designer erano abituati a scrivere codice sui bottoni e sulle MovieClip ed utilizzavano degli scripts basilari per poter implementare un minimo di interattività al loro SWF.
Con la realizzazione di Flash CS3 ed Actionscript 3.0, scrivere sui bottoni o sulle MovieClip non è più possibile e quindi si trovano spaesati e spesso ' impauriti ' al solo pensiero di dover migrare da Flash 8 a Flash CS3 utilizzando AS 3.0 .
Date le circostanze, ho deciso di creare una nuova sezione che partirà dalle prime basi di Actionscript 3.0 e vi accompagnerà sempre più a fondo fino a portarvi ad avere una buona conoscenza e dimestichezza del linguaggio.
Cercherò di trasmettervi tutto quello che conosco di Actionscript nella via più semplice.
Toccheremo e studieremo a fondo cocetti basilari di Actionscript 3.0 :
- variabili
- cicli
- array
- funzioni
- eventi
... ed altro ancora.
Actionscritp 3.0 - Tutorial 1
Le variabili
...cos'è un variabile...?
Vediamola così: una variabile è una scatola.
Una scatola ? Sì sì, avete capito bene, proprio una scatola.
Una scatola può avere un nome e può contenere delle cose, nel caso di Actionscript avrà sì un nome ma conterrà dei valori o degli oggetti.
Una scatola può contenere diversi tipi di valori e quindi bisogna dire alla nostra variabile che tipo di valore può contenere.
Una variabile può essere locale o globale.
Locale se definita all' interno di una funzione, quindi una volta eseguito il codice della funzione la variabile viene cancellata automaticamente dalla memoria di Flash, ma questo lo vedremo più avanti.
Globale rimane sempre in memoria e quindi sempre accessibile.
Ecco come dichiarare una variabile:
var serve a dichiarare a Flash una variabile
miles è il nome della variabile
:Number; è il tipo di valore che la variabile può contenere, in questo caso solo un valore numerico.
Vediamola pure con la metafora della scatola. Dico a Flash di creare una scatola con una etichetta con scritto il nome della scatola ( miles ) e questa scatola, dico sempre a Flash, può contenere dei valori solo di tipo numerico, quindi 0, 3, 124, 0.4, 654.332 ecc ecc.
Ora assegno alla mia variabile un valore:
PS: potevo assegnarlo anche direttamente al momento della dichiarazione, in questo modo:
Code:
var miles:Number=10;
Piccola postilla: :Number è definito il Data Type della variabile.
Con Actionscript 1.0 molti di noi erano abituati a scrivere var miles=10; e nella Programmazione Orientata agli Oggetti non c'è nulla di più sbagliato.
Per cui un mio consiglio è di mettere
sempre il Data Type, anche perchè se vorreste passare a scrivere codice sui files .as, se non scrivete il Data Type, Flash vi da un errore. Meglio abituarsi da subito.
Ora, se scrivo:
sto dicendo a Flash di farmi vedere cosa c'è nella scatola che si chiama miles, quindi Flash aprirà la scatola e mi farà vedere il valore che c'è dentro.
Infatti ottengo il seguente output:
10
Ho detto che la variabile Miles può contenere solo valori numerici, dato dal fatto che è tipizzata Number (:Number).
Vediamo se è corretto, provo ad inserire un valore di tipo stringa alla variabile miles:
se pubblico l' SWF, Flash mi restituisce il seguente errore:
1067: Implicit coercion of a value of type String to an unrelated type Number.
Mi sta dicendo che ho sbagliato il tipo di valore e che sto cercando di assegnare un valore di stringa ad un variabile di tipo Number.
Se invece, dopo aver scritto var miles:Number=10; scrivessi:
con un trace(miles); otterrei il seguente output:
10
15
Questo ci fa capire che posso cambiare il valore di una variabile quando voglio, purchè sia sempre un valore dello stesso tipo di quando la variabile è stata dichiarata.
Vediamo un altro esempio, aggiungo un valore al valore già esistente in miles:
questa sintassi dice a Flash:
apri la scatola che si chiama miles, prendi il suo valore, aggiungi 10 e richiudi la scatola.
Quindi aggiunge un valore di 10 al valore già esistente, infatti con trace(miles); ottengo il seguente output:
10
15
25
in sostanza è come dire miles= miles+10;
Domanda che vi sorgerà spontanea, quali tipi di valori posso assegnare ad una variabile ?
Risposta: ogni tipo di valore delle classi built-in che esistono in Flash, quindi Numer,String, MovieClip, TextField, ecc ecc
Una lista completa delle classi esistenti in flash la trovate a questo link:
http://www.flepstudio.org/forum/attachments/actionscript-3-0-avanzato/3d1184978071-migrazione-ad-actionscript-3-0-migrazione-as2-as3.pdf
Per aiutare i dubbi di qualcuno, meglio are degli esempi.
Creo una variabile di tipo String e gli assegno un valore stringa:
Code:
var nome:String="filippo";
e con trace(nome) ottengo il seguente output:
filippo
è importante scrivere la stringa ( appunto perchè di stringa si tratta ) tra le virgolette "filippo" altrimenti se dovessimo scrivere
Code:
var nome:String=filippo;
Flash ci restituirebbe il seguente errore:
1120: Access of undefined property filippo.
dicendo giustamente che non trova nessuna variabile che si chiama filippo.
Infatti se diciamo =filippo, Flash cerca una variabile con quel nome per poter assegnare il valore della variabile filippo alla variabile nome.
Quindi ricapitolando, una stringa va sempre inserita all' interno delle virgolette.
Alro esempio, creo una variabile di tipo MovieClip:
Code:
var clip:MovieClip=new MovieClip();
in questo caso abbiamo una nuova sintassi che fino ad ora non avevamo visto ed è l' operatore new.
Questo operatore serve per far capire a Flash che deve creare una nuova MovieClip. Dato che la variabile clip conterrà una MovieClip.
Quindi dire var clip:MovieClip=new MovieClip(); è come dire: Flash ! crea una nuova MovieClip vuota.
Andando un po più a fondo bisognerebbe dire che abbiamo istanziato la classe MovieClip, ma non è il momento di parlare di queste cose in quanto potrebbero solo confedere chi appunto è alle prime basi e vuole apprenderele con FlepStudio.
Altro esempio, creo una variabile di tipo textField:
Code:
var campo:TextField=new TextFiled();
anche quì ci troviamo con l' operatore new.
Alla prossima !
Files: