Corso di actiosncript on line

Corso on line di Actionscript per Flash MX

L'ambiente di lavoro e l'Universo dei MovieClip

I concetti esposti in questa lezione sono di estrema importanza per riuscire ad utilizzare l'ActionScript di Flash.
Non si può procedere nella programmazione se prima non si ha ben chiaro quello che andremo a vedere adesso (e che costituisce il più grande ostacolo per chi si addentra nell'ActionScript per la prima volta).

Per ambiente di lavoro intendiamo l'interfaccia di Flash sulla quale inseriamo codice e grafica.
Tutti sappiamo che in Flash possiamo inserire vari layer (livelli) come se fossero dei fogli di carta velina sovrapposti.
Il layer iniziale sarà quello più basso, più profondo nella visualizzazione del nostro filmato.
Man mano che aggiungiamo layer si vanno a sovrapporre, tuttavia possiamo anche invertirgli delle posizioni durante l'authoring.
Questo è quello che abbiamo sempre fatto usando flash graficamente.
Ma come si fa a realizzare col codice (ActionScript) quello che facevano fino ad oggi graficamente?

La prima cosa che dobbiamo sapere è com'è strutturato il filmato Flash.
Da Flash 4 si parla di "Universo dei MovieClip" proprio per rappresentare, con l'impilazione di MC su più livelli e l'annidiamento di MC in altri MC una struttura complessa e scalare.

Con l'evoluzione della sintassi di Flash 5 è notevolmente migliorata la gestione di questo universo.
E con Flash MX ha avuto ancora dei miglioramenti.
Ma vediamo nei dettagli il discorso:
Sappiamo che trasformando qualsiasi simbolo in MC e dandogli un nome istanza, successivamente lo potremmo controllare attraverso il codice.
Quando apriamo Flash abbiamo di default una timeline, un frame, uno stage.
Quella su cui lavoriamo è la _root ossia la radice, ma potremmo tranquillamente affermare anche l'MC n° 0 di Flash, ed è a tutti gli effetti un MC (MovieClip).
Flash riconosce due "ordinamenti" degli MC.
Uno è quello degli MC, e l'altro è quello dei livelli.
Non dobbiamo confondere i livelli con i layer sui quali operiamo, anche se hanno la stessa similare impilazione.
Infatti la _root oltre a essere l'MC numero 0 del nostro filmato, è anche riconosciuto come livello n° 0.
Questo potrà sembrare un po' strano, eppure vedremo che ha le sue ragioni.

Se nella timeline mettessi:

_alpha=50;
this._alpha=50;
_root.alpha=50;
_level0._alpha=5
0;

avrei sempre lo stesso risultato di mettere al 50% la trasparenza della _root e tutto quello contenuto in essa, ed è sempre corretto.
Per riuscire a capire bene questo, pensiamo verosimilmente che Flash disponga già al suo interno degli MC istanziati che sono appunto i livelli.
Il loro nome istanza andrà da _level0 a _level16000 (tanti sono i livelli supportati da Flash) e sarà un nome prestabilito che non possiamo cambiare.
Il numero rappresenta anche la profondità (depth) con la quale vengo impilati e verranno quindi visionati i livelli, con lo 0 che indicherà proprio il più profondo, come quando operiamo sul layer iniziale della timeline e il 16000 quello che sovrasterà tutti.
A tutti gli effetti i livelli (_level) possono essere considerati come MovieClip, le differenze sostanziali sono:
che sono già istanziati;
che la loro disposizione iniziale è la stessa (come coordinate) della timeline;

Con l'utilizzo dell'ActionScript vedremo come possiamo caricare oggetti esterni al filmato (MovieClip, Jpeg, Suoni, Variabili).
Vedremo anche come Flash distingue immediatamente se un elemento viene caricato in un MovieClip o in un Livello.
Per Flash non c'è alcuna differenza, ma per capire come avviene ricorreremo a qualche esempio pratico.
Se noi trasformiamo qualsiasi cosa in un MovieClip (con il tasto F8) da quel momento per Flash possiamo comandarlo via codice.
Proprio da quel momento, perché Flash, se non gli assegniamo nessun nome istanza e non vi sono altri MC senza nome istanza, lo chiamerà istance1 e potremmo tranquillamente scrivere:
instance1._visible=0;
per renderlo invisibile.
Naturalmente è sempre consigliabile (e lo faremo sempre) dare un nome istanza al nostro MovieClip dal pannello delle proprietà.
Supponiamo che chiamiamo il nostro MC pippo
Per rimanere in tema di variabili, ricordiamoci che il nome pippo, non è nient'altro che una stringa che abbiamo assegnato alla proprietà _name del nostro MC (tramite il pannello delle proprietà).
Il _name essendo una variabile di lettura e scrittura potrà anche essere cambiato nel corso del nostro filmato (via codice).
Se ad un certo punto volessimo che pippo diventi pluto, basterebbe scrivere:
pippo._name="pluto";
da quel momento per qualsiasi comando andremmo a dare al nostro MC, dovremmo fare riferimento al nome pluto, proprio perché è cambiato.

Rimaniamo ora col nostro pippo e vediamo come lo vede Flash.
Flash vedrà pippo immediatamente sopra la _root indipendentemente dal layer dove è situato quando lo creiamo. Questo è il primo concetto importante.
Ossia, per fare riferimento a pippo sintatticamente potremmo usare sia un percorso relativo:
pippo._visibile=0;
che ad un percorso assoluto:
_root.pippo._visibile=0;
Entrambi produrranno lo stessa effetto e la differenza nello scrivere la sintassi la vedremo praticamente.
Quello che è importante come primo concetto è che ovunque abbiamo disegnato o trasformato il nostro MC nello stage (nei vari layer che ci creiamo sulla timeline), per Flash sarà sempre immediatamente sopra la _root.
Il secondo concetto è strettamente legato al discorso dei livelli di cui sopra:
com'è vero che Flash vede sulla _root il nostro pippo, è anche vero che se lo trova al suo primo livello, appunto quello 0, sotto di tutti come profondità.
Non ci deve stupire quindi il fatto che anche la sintassi:
_level0.pippo._visibile=0;
sia perfettamente corretta.

Da questo possiamo quindi dedurre gli aspetti più importanti dell'ActionScript e della sintassi DOT, i suoi fondamenti basilari:
Flash lavora sia con MC che con LIVELLI (che li abbiamo paragonati ad MC già istanziati).
La _root costituisce il primo MC di Flash, e di default è appunto istanziato _root , ed è anche il primo livello, quello più basso (depth=0) istanziato _level0
Ogni MC ha a sua volta a disposizione 16000 livelli, e negli MC potranno essere annidiati altri MC, mantenendo anche i propri livelli.
Da qui la nomea di Universo dei MovieClip che giustamente ha avuto Flash 4, e che grazie la sintassi DOT adottata da Flash 5 permette con l'ActionScript di gestire facilmente.
Con Flash MX un ulteriore contributo permetterà di gestire ancora più facilmente questo universo e vedremo come.

Ricordando che nella prima parte della sintassi DOT abbiamo l'oggetto (completo di percorso) e nella seconda la proprietà o a azione o funzione come visto all'inizio:
oggetto._proprietà=valore;
oggetto.azione;
oggetto.funzione();

ecco alcuni esempi pratici di sintassi

pippo.gotoAndStop(2);
pippo._level100.play();
_root.pippo.visible=0;
_level100.pippo.paperino._alpha=50;
_level100.pippo. _level100.find();

Si consiglia di provare con diversi esempi quanto visto finora, per fugare qualsiasi dubbio.
La comprensione di questa sezione è fondamentale per l'apprendimento dell'ActionScript che poggia su queste fondamenta le sue basi.

Anche se semanticamente e sintatticamente il linguaggio dell'ActionScript si avvicina moltissimo al Javascript (questa somiglianza sarà stata scelta proprio per agevolare chi conosce il più diffuso linguaggio Client-Side del mondo) , tuttavia la struttura di Flash che abbiamo visto ora, non ha uguaglianze in altra programmazione o altri tool, per questo è il gradino più importante da affrontare e quello che pone le maggiori difficoltà a chi si addentra all'ActionScript per la prima volta.



Torna su

Menu Actionscript

Lezione precedente: Le Variabili

Lezione successiva: Gli Array

Ci sono 2 utenti collegati - oggi ricorre S. Agata vergine e martire -   © 1998-2006 - Z 2000.it
Online Users | Policy | Disclaimer | Site Map | Search | Netiquette



Ultima modifica: martedì 27 dicembre 2005 alle 9.14.25




Valid CSS!
Valid HTML 4.01!