ottimi tutorials per chi come parte da sotto zero. La domanda: com'è che hai permesso il download del codice, del pdf della prima pagina e NON il pdf dell'intero tutorial?
This is a discussion on Tutorial 1 - le variabili within the Actioscript 3.0 base - tutorials forums, part of the Flash Italiano category; Ciao a tutti ! Ho notato che c'è una buona parte di utenti di FlepStudio che vorrebbe apprendere Actionscript 3.0 ...
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 variabileCode:var miles:Number;
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:miles=10;
Piccola postilla: :Number è definito il Data Type della variabile.Code:var miles:Number=10;
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.Code:trace(miles);
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:Code:miles='Davis';
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:Code:miles=15;
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:Code:miles+=10;
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:
e con trace(nome) ottengo il seguente output:Code:var nome:String="filippo";
filippo
è importante scrivere la stringa ( appunto perchè di stringa si tratta ) tra le virgolette "filippo" altrimenti se dovessimo scrivere
Flash ci restituirebbe il seguente errore:Code:var nome:String=filippo;
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:
in questo caso abbiamo una nuova sintassi che fino ad ora non avevamo visto ed è l' operatore new.Code:var clip:MovieClip=new MovieClip();
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:
anche quì ci troviamo con l' operatore new.Code:var campo:TextField=new TextFiled();
Alla prossima !
Files:
Last edited by Flep; 05-06-08 at 18:05.
ottimi tutorials per chi come parte da sotto zero. La domanda: com'è che hai permesso il download del codice, del pdf della prima pagina e NON il pdf dell'intero tutorial?
Ciao
Non ci avevo pensato a dir la verità... non c'è un perchè...
Grazie mille per questa guida. Sono alle prime armi con Flash e AS e la trovo molto semplice e completa...
ciao Flep, e grazie per questi tutorials
io sn alle prime armi. ho seguito il primo tutorial,
alla fine del quale ho creato un file fla chiamato Prova, poi ho creato una classe .as chiamata prova, con dentro :
var nome:String="filippo"
trace(nome)
pubblico l'swf e mi da questo errose:
5007:un file di ActionScript deve avere almeno una funziona visibile esternamente
che significa??
grazie
Scusa Flep,
solo ora ho capito che devo creare un documento fla con dentro un actionScript e nn una classe .as. scusa![]()
Caro Filippo,
ti ringrazio per le tue guide, sono un grande aiuto.
ho cominciato con action script 3, ed ecco le mie domande:(generali)
1: quando ho letto la prima pagina, mi sono fatta subito questa domanda:
ma se io volessi creare un clip filmato e far lo partire cliccando su un pulsante,
devo sapere tutto ciò che hai spiegato?(array, cicli, variabili?)
2: se io posso intervenire direttamente su stage e cambiare l'alpha
del mio oggetto, allora quale è il vantaggio di farlo tramite l'action
script, (variabile)?
grazie davvero
ciao flep, utilissima guida per me che sono alle prime armi con l'as3 (ormai essenziale, anche per noi affezionati alla ver 2.0)
ti segnalo però un piccolo errore evidentemente di digitazione:
var campo:TextField=new TextFiled();
dovrebbe essere invece
var campo:TextField=new TextField();
grazie di nuovo,
AL.-
Bookmarks