Flash CS3 - Flash CS4

Free tutorials and scripts for all.
Actionscript 3.0

Tutorial 2 - gli Array

This is a discussion on Tutorial 2 - gli Array within the Actioscript 3.0 base - tutorials forums, part of the Articoli e tutorials category; Ciao a tutti ! Proseguo con i tutorials delle basi di Actionscript 3.0 . Dopo aver visto come si usano e ...


Go Back   Forum Flash CS3 Flash CS4 > Flash CS3 e Actionscript 3.0 > Articoli e tutorials > Actioscript 3.0 base - tutorials

Register FAQ Members List Calendar Search Today's Posts Mark Forums Read
  1 links from elsewhere to this Post. Click to view. #1 (permalink)  
Old 01-10-07, 06:44
Administrator
 
Join Date: Jul 2007
Location: Cesena
Posts: 4,486
Rep Power: 6
Flep is on a distinguished road
Tutorial 2 - gli Array

Ciao a tutti !

Proseguo con i tutorials delle basi di Actionscript 3.0 .
Dopo aver visto come si usano e cosa sono le varibili, entriamo nel mondo degli Array.
Prima di incominciare voglio sottolineare il fatto che gli Array possono essere estremamente complessi ed avere svariati metodi e tecniche su come implementarli e su come gestirli.
Se dovessi spiegare gli Array di Actionscript 3.0 in tutto e per tutto, non basterebbero 30 pagine e rischierei di creare molta confusione al target delle persone che leggono questi tutorials ( la maggior parte alle prime armi e principianti ).
In questo tutorial rimaniamo nelle prime basi, per cui Array ad una sola dimensione con accenni ad un Array bi-dimensionale.
Vedremo come dichiarare un Array e come popolare ( riempire ) un Array.

Se vi ricordate, avevo chiesto ( a chi si avvicina per la prima volta alla programmazione e in questo caso ad Actionscript ) di pensare ad una variabile come ad una scatola.
Una scatola che ha un nome e che contiene un valore. Basta chiamare il nome della scatola per recuperare il valore che contiene.

Un Array è solo una scatola più grande...

Classe Array


Un Array è una scatolone che può contenere altre scatole al suo interno.
Questo dovrebbe farvi capire che un Array in Actionscript 3.0 può contenere delle variabili che a loro volta contengono un valore.

Dichiaro un Array:
var nomi:Array=new Array();
in questo caso ho dichiarato una varibile di tipo Array ( quindi che può contenere altre variabili ) e al momento è vuoto.
Infatti se proviamo a dire a Flash: trace(nomi); si apre il pannello output ma Flash non ci scrive niente.
Come popolarlo ?

Ci sono diversi modi, il primo sicuramente da tenere in considerazione e da imparare è il seguente:
nomi=['filippo','luca','giovanni','giacomo','pietro'];
tra parentesi quadre inseriamo dei valori stringa ( String ) separati da una virgola.
Se eseguiamo un trace(nomi); ecco l' output che otteniamo da Flash:
filippo,luca,giovanni,giacomo,pietro

Un altro modo, è di popolare il nostro Array al momento della dichiarazione:
var nomi:Array=new Array('filippo','luca','giovanni','giacomo','pietr o');
in questo caso abbiamo inserito i valori stringa all' interno delle parentesi tonde al momento in cui abbiamo dichiarato l' Array.
Il risultato è idenico all' esempio pecedente, infatti con il comando trace( nomi); otteniamo lo steso output:
filippo,luca,giovanni,giacomo,pietro
Ok, e adesso ?
Risposta:
Flash ha creato una variabile che al suo interno contiene altre variabili con dei valori stringa ( 'filippo', 'luca', ' giovanni' ecc ecc ):
Allo stesso tempo che abbiamo popolato l' Array, Flash ha assegnato un indice ad ogni valore. Un indice che sarebbe il nome di ogni scatola, di ogni variabile contenuta al suo interno.
Gli indici che gli assegna sono numerici e vengono incrementati partendo dallo zero.
Ad esempio, se io scrivo: nomi[0]; è come scrivere 'filippo', in quanto Flash va a recuperare il valore che è all' interno dell' Array nomi all' indice 0 ( zero ), il primo indice.
Se scrivo nomi[3] è esattamente come se scrivessi 'giacomo', perchè Flash prende il valore nell' indice 3 dell' Array nomi.
Quindi, ecco come recuperare i valori all' interno dell' Array:
trace(nomi[0]); ottengo:
filippo
trace(nomi[1]); ottengo:
luca
trace(nomi[2]); ottengo:
giovanni
trace(nomi[3]); ottengo:
giacomo
trace(nomi[4]); ottengo:
pietro

Per togliere ogni dubbio e fare un altro esempio concreto, potremmo anche dichiarare e popolare un Array in questo modo:
var nomi:Array=new Array();
nomi[0]='filippo';
nomi[1]='luca';
nomi[2]='giovanni';
nomi[3]='giacomo';
nomi[4]='pietro';

infatti, se scrivo trace(nomi); ottengo sempre il solito output:
filippo,luca,giovanni,giacomo,pietro
Se scrivo:
var nomi:Array=new Array('filippo','luca','giovanni','giacomo','pietr o');
e poi
nomi[1]='cesare';
con trace(nomi); ottengo:
filippo,cesare,giovanni,giacomo,pietro

Chiaramente, se dovessi scrivere:
trace(nomi[5]);
otterrei
undefined
in quanto l' indice 5 nell' Array non esiste perchè abbiamo sì 5 indici ma partendo dallo zero ( quindi: 0,1,2,3,4 ).

Proprietà length della classe Array


Dall' ultimo esempio mi collego ad una proprietà della Classe Array che mi restituisce/dice la lunghezza dell' array:la proprietà length.
Se scrivo:
trace(nomi.length);
ottengo
5
quindi, per recuperare l' ultimo valore dell' Array potrei scrivere:
trace(nomi[nomi.length-1]);
ottenendo
pietro
nomi.length-1 e ho la certezza assoluta di riferirmi all' ultimo indice dell' Array, cioè la sua lunghezza meno uno.
Questa proprietà sarà fondamentale quando la prossima volta vedremo come ' navigare ' gli Array utilizzando un ciclo.

Metodo push della Classe Array


Un metodo semplice ma molto importante è push.
Come la parola stessa lascia inendere, inserisce un valore nell' array.
quindi, se ad esempio scrivo:
var nomi:Array=new Array('filippo','luca','giovanni','giacomo','pietr o');
nomi.push('antonio');
Flash inserisce il valore che passo a push creando un nuovo indice. Lo inserisce alla fine dell' Array, non all' inizio.
Quindi con trace(nomi); ottengo:
filippo,luca,giovanni,giacomo,pietro,antonio
Il nostro Array adesso ha lunghezza 6, infatti con trace(nomi.length); ottengo
6

Metodo reverse della classe Array


Questo metodo, anche in questo il nome lascia intendere benissimo, inverte il contenuto del nostro Array.
Se scrivo
var nomi:Array=new Array('filippo','luca','giovanni','giacomo','pietr o');
nomi.reverse();
con trace(nomi); ottengo
pietro,giacomo,giovanni,luca,filippo
e quindi nomi[0] sarà pietro

Come ho già detto esistono tanti altri metodi e tante altre proprietà della classe Array, ma direi di fermarci quì.
Potrete voi stessi studiare gli altri metodi, dato che questo tutorial dovrebbe avervi dato le basi necessarie per capire a fondo la classe Array di Actionscript 3.0 .

Fino ad ora abbiamo visto come lavorare con un Array che contiene dei valori stringa ma tengo a precisare che un Array può contenere qualsiasi tipo di valore: Number, textField, MovieClip, ecc ecc...

Facciamo un esempio con Array e MovieClip.
Creo un FLA che salvo con nome ' main.fla '.
Creo un livello in più, in modo da averne due.
Ad un livello assegno il nome clips e all' altro il nome code ( oppure actions )
Al suo interno, creo una MovieClip e gli assegno il nome mc_clip.
Trascino 5 volte la MovieClip dalla libreria allo stage sul livello clips, creando 5 istanze della stessa MovieClip e gli assegno i corrispoettivi nomi istanza: clip_0_mc, clip_1_mc, clip_2_mc, clip_3_mc, clip_4_mc.
Seleziono il livello clips, apro il pannello azioni e scrivo:
var clips:Array=new Array(clip_0_mc,clip_1_mc,clip_2_mc,clip_3_mc,clip _4_mc);
in questo caso, ho creato un Array con nome clips e gli ho inserito le 5 MovieClip che sullo stage ( chiaramente inserendole col loro nome istanza ).
Se eseguo trace(clips); ottengo
[object MovieClip],[object MovieClip],[object MovieClip],[object MovieClip],[object MovieClip]
Flash mi sta dicendo che dentro a clips ci sono 5 MovieClip.
Ora, se scrivo
clips[0].alpha=0.5;
quando pubblico l' SWF noto che una delle 5 MovieClip è più trasparente delle altre.
Se avete ben chiaro cosa è un Array dagli esempi precedenti, non è difficile capire il perchè.
clips[0] è clip_0_mc
.alpha=0.5; cambio il valore della proprietà alpha di quella MovieClip a 0.5 ( va da 0 a 1 ).
Se scrivo
clips[3].rotation=45;
noterò che la MovieClip che è contenuta nell' indice 3 dell' ARray clips ha girato su se stessa di 45° in quanto ho agito sulla sua proprietà rotation.







Files:
Attached Files
File Type: zip tutorial_2.zip (12.6 KB, 147 views)

__________________

 


I recommend: Essential Actionscript 3.0

- Non rispondo ai messaggi privati con domande tecniche. Apri una discussione sul forum !
- I do not reply technicians pvt messages. Open a thread !

Last edited by Flep; 05-06-08 at 19:06..
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote

  #2 (permalink)  
Old 22-11-07, 14:23
Junior Member
 
Join Date: Nov 2007
Posts: 7
Rep Power: 0
Alfire is on a distinguished road
Re: Tutorial 2 - gli Array

non so se è il luogo per risponderti x' non c'è nessun post...

Cmq in questo passo :"
Per togliere ogni dubbio e fare un altro esempio concreto, potremmo anche dichiarare e popolare un Array in questo modo:
var nomi:Array=new Array();
nomi[0]='filippo';
nomi[0]='luca';
nomi[0]='giovanni';
nomi[0]='giacomo';
nomi[0]='pietro';

infatti, se scrivo trace(nomi); ottengo sempre il solito output:
filippo,luca,giovanni,giacomo,pietro"

gli indici non sono tutti 0, vero!?ma così...
nomi[0]='filippo';
nomi[1]='luca';
nomi[2]='giovanni';
nomi[3]='giacomo';
nomi[4]='pietro';

se no mi sono perso qlk! :P
Grazie
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote

  #3 (permalink)  
Old 22-11-07, 14:45
Administrator
 
Join Date: Jul 2007
Location: Cesena
Posts: 4,486
Rep Power: 6
Flep is on a distinguished road
Re: Tutorial 2 - gli Array

Ciao e benvenuto

Grazie di avermelo fatto presente, era un errore di distrazione.
__________________

 


I recommend: Essential Actionscript 3.0

- Non rispondo ai messaggi privati con domande tecniche. Apri una discussione sul forum !
- I do not reply technicians pvt messages. Open a thread !
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote

  #4 (permalink)  
Old 22-11-07, 14:49
Junior Member
 
Join Date: Nov 2007
Posts: 7
Rep Power: 0
Alfire is on a distinguished road
Re: Tutorial 2 - gli Array

Di nulla! Mi è saltato all'occhio visto che mastico un' po di codice, e spesso sono vittima del copia incolla!
Complimenti per il sito!!! Verrò spesso a spulciare tra i tuoi tutorial...

Have a nice day!
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote

  #5 (permalink)  
Old 27-11-07, 17:01
Junior Member
 
Join Date: Nov 2007
Posts: 2
Rep Power: 0
saettaMatta is on a distinguished road
Re: Actionscript for beginners - Tutorial 2 - The Array

Ciao!
sono nuova del forum e... di action script!
Ho letto attentamente il tutorial sugli array... vorrei costruire un loop continuo di immagini, e ho capito (credo....!!!) che per prima cosa devo popolare un array con i percorsi delle foto....
insomma.... come posso fare?
Grazie mille per la disponibilità!
simo
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote

Flash Multi Gallery
  #6 (permalink)  
Old 27-11-07, 17:23
Administrator
 
Join Date: Jul 2007
Location: Cesena
Posts: 4,486
Rep Power: 6
Flep is on a distinguished road
Re: Tutorial 2 - gli Array

Ciao e benvenuta

Esattamente, per prima cosa devi creare un array con i nomi dei percorsi delle foto.
Poi devi utilizzare una variabile numerica che parte da zero.
Un Timer che ogni tot secondi carica una immagine.

A dir la verità per essere nuova con flash ed actionscript sei partita con una cosa non proprio semplice
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote

  #7 (permalink)  
Old 27-11-07, 17:28
Junior Member
 
Join Date: Nov 2007
Posts: 2
Rep Power: 0
saettaMatta is on a distinguished road
Re: Tutorial 2 - gli Array

Ciao e grazie per la velocità della risposta...
si è vero non è una cosa semplice... ma ho visto che realizzando la stessa cosa solo graficamente ottengo un file davvero pesante e una time line ingestibile, soprattutto se le foto cominciano ad essere molte...
ma che fatica però!!!
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote

  #8 (permalink)  
Old 27-11-07, 17:31
Administrator
 
Join Date: Jul 2007
Location: Cesena
Posts: 4,486
Rep Power: 6
Flep is on a distinguished road
Re: Tutorial 2 - gli Array

Parti da cose più sempici, un passo alla volta e vedrai che ce la fai molto meglio.
Fai tue le prime basi, fai pratica e imparale bene.
Poi vai avanti piano piano.

Intanto se vuoi scaricare qualche galleria dalla sezione downloads e studiarla ce ne sono parecchie
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote

  #9 (permalink)  
Old 13-12-07, 09:52
Junior Member
 
Join Date: Dec 2007
Posts: 9
Rep Power: 0
DaviDM is on a distinguished road
Re: Tutorial 2 - gli Array

Salve a tutti. MI avvicino per la prima volta a Flash. Ho cercato di fare l'array di MovieClip
Ho scritto
Code:
var clips:Array=new Array(clip_0_mc,clip_1_mc,clip_2_mc,clip_3_mc,clip _4_mc);
trace(clips);
se provo ad eseguire Flash mi da errore:
1084: Errore di sintassi: è previsto rightparen prima di _4_mc.
Credo di aver fatto tutto giusto
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote

  #10 (permalink)  
Old 13-12-07, 10:25
Administrator
 
Join Date: Jul 2007
Location: Cesena
Posts: 4,486
Rep Power: 6
Flep is on a distinguished road
Re: Tutorial 2 - gli Array

Ciao e benvenuto

Non credo che il tuo errore riguarda quella parte di codice in quanto è corretta.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote

Reply

Bookmarks

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is On
Trackbacks are On
Pingbacks are On
Refbacks are On
Forum Jump

Similar Threads

Thread Thread Starter Forum Replies Last Post
array multidimensionali mobbu Actionscript 3.0 avanzato 20 26-08-08 09:53
Actionscript for beginners - Tutorial 2 - The Array Flep Actionscript for beginners - tutorials 1 08-07-08 07:17
L' importanza di un Array Flep Articoli e tutorials 1 16-06-08 23:44
array in an array madmad Actionscript 3.0 newbies 1 22-05-08 10:09
array mobbu Actionscript 3.0 base 8 26-09-07 16:57


All times are GMT. The time now is 22:29.


Powered by vBulletin versione 3.7.4
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0 RC4
Forum SiteMap


FlepStudio
by Filippo Lughi
P.IVA 03605860406