+ Reply to Thread
Page 1 of 5 1 2 3 ... LastLast
Results 1 to 10 of 42

Tutorial 2 - gli Array

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

  1. #1
    Administrator Living At The FlepStudio! Flep is on a distinguished road
    Join Date
    Jul 2007
    Posts
    5,762
    Rep Power
    10

    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

  2. #2
    Junior Member Settled In Alfire is on a distinguished road
    Join Date
    Nov 2007
    Posts
    8
    Rep Power
    0

    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

  3. #3
    Administrator Living At The FlepStudio! Flep is on a distinguished road
    Join Date
    Jul 2007
    Posts
    5,762
    Rep Power
    10

    Re: Tutorial 2 - gli Array

    Ciao e benvenuto

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

  4. #4
    Junior Member Settled In Alfire is on a distinguished road
    Join Date
    Nov 2007
    Posts
    8
    Rep Power
    0

    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!

  5. #5
    Junior Member Settled In saettaMatta is on a distinguished road
    Join Date
    Nov 2007
    Posts
    2
    Rep Power
    0

    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

  6. #6
    Administrator Living At The FlepStudio! Flep is on a distinguished road
    Join Date
    Jul 2007
    Posts
    5,762
    Rep Power
    10

    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

  7. #7
    Junior Member Settled In saettaMatta is on a distinguished road
    Join Date
    Nov 2007
    Posts
    2
    Rep Power
    0

    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ò!!!

  8. #8
    Administrator Living At The FlepStudio! Flep is on a distinguished road
    Join Date
    Jul 2007
    Posts
    5,762
    Rep Power
    10

    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

  9. #9
    Junior Member Settled In DaviDM is on a distinguished road
    Join Date
    Dec 2007
    Posts
    9
    Rep Power
    0

    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

  10. #10
    Administrator Living At The FlepStudio! Flep is on a distinguished road
    Join Date
    Jul 2007
    Posts
    5,762
    Rep Power
    10

    Re: Tutorial 2 - gli Array

    Ciao e benvenuto

    Non credo che il tuo errore riguarda quella parte di codice in quanto è corretta.

+ Reply to Thread
Page 1 of 5 1 2 3 ... LastLast

Similar Threads

  1. Actionscript for beginners - Tutorial 2 - The Array
    By Flep in forum Actionscript for beginners - tutorials
    Replies: 4
    Last Post: 09-10-11, 08:08
  2. array di pulsanti che chiamano array di funzioni
    By chil8 in forum Actionscript 3.0 base
    Replies: 0
    Last Post: 12-02-10, 16:01
  3. Tutorial 3 - the methods
    By Flep in forum Object Oriented Programming - tutorials
    Replies: 9
    Last Post: 07-05-09, 13:09
  4. Tutorial 3 - i cicli
    By Flep in forum Actioscript 3.0 base - tutorials
    Replies: 12
    Last Post: 23-06-08, 22:58
  5. Tutorial 4 - the functions
    By Flep in forum Actionscript for beginners - tutorials
    Replies: 1
    Last Post: 21-05-08, 09:31

Tags for this Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts