Manuale elementi di base

Transcript

Manuale elementi di base
itsosmilano.it
A
C T I O N
S
C R I P T
3
Manuale elementi di base
A
cura
dei
docenti
di
STC
1
itsosmilano.it
Pag
3
4
5
6
7
8
9
10
11
12
13
14
16
Argomento
Azioni principali
Panoramica sulla creazione di script
Assegnazione di azioni a un fotogramma
Gestione di pulsanti
Eventi sui pulsanti
Gestione tastiera
Creazione di istanze di oggetti
Navigazione in un filmato
Navigazione con filmati multipli
Comunicazione con l’esterno
Uso della modalità a schermo intero
Principali Proprietà Clip Filmato
Trascinamento di un clip-filmato
Rilevazione collisioni tra clip-filmato
Creazione di testo
Caricamento di testo da un file esterno
Uso e controllo dell’audio
Video in streaming
Oggetto Math
XML e ActionScript
Controllo di una condizione
addEventListener
KeyboardEvent
stop(), play(), gotoAndPlay()
ecc
NavigateToUrl
stage.displayState
startDrag();
hitTestPoint
Sound, SoundChannel
Video, NetConnsction, NetStream
Appendice
if, switch/case
2
itsosmilano.it
Panoramica sulla creazione di script
ActionScript è il linguaggio per la creazione di script di Flash grazie al quale è possibile
aggiungere interattività a un filmato. ActionScript fornisce elementi, quali azioni, operatori e
oggetti, che vengono raggruppati in script che forniscono istruzioni al filmato.
Per script si intende un insieme di azioni che vengono normalmente eseguite da Flash
nell'ordine in cui sono scritte.
Il filmato viene impostato in modo che gli eventi, ad esempio il clic del mouse su un pulsante
o la pressione di un tasto, attivino tali script. ActionScript può essere usato per creare, ad
esempio, pulsanti di navigazione per il filmato. Le azioni sono istruzioni che indicano a un
filmato di eseguire una determinata operazione durante la riproduzione.
Assegnazione di azioni a un fotogramma
Per determinare l'esecuzione di un'azione in un filmato quando l'indicatore di riproduzione
raggiunge un fotogramma nella linea temporale, è necessario assegnare un'azione al
fotogramma. Ad esempio, per creare una ripetizione ciclica nella linea temporale tra i
fotogrammi 20 e 10, è necessario aggiungere al fotogramma 20 un'azione che invia l'indicatore
di riproduzione al fotogramma 10:
gotoAndPlay (10);
Alcune azioni vengono comunemente assegnate al primo fotogramma di un filmato.
In generale, è possibile assegnare al primo fotogramma qualsiasi azione che si
desidera venga eseguita all'inizio del filmato.
È consigliabile collocare tutte le azioni fotogramma in un livello denominato Azioni; in tal
modo, è sempre possibile trovare le azioni nella linea temporale. Dopo aver assegnato
un'azione, salvare il filmato e provarlo per verificarne il funzionamento.
Gestione di pulsanti
La gestione dei pulsanti avviene associando ai pulsanti un listener che “ascolta” se si verifica
un evento nel qual caso richiama una funzione.
Sintassi
istanza_pulsante.addEventListener(tipoevento.EVENTO,nomefunzione);
function nomefunzione (e:tipoevento){
//azioni in risposta all’evento
}
dove:
istanza_pulsante: nome dell’istanza del pulsante
tipoevento: evento di cui si richiede la verifica
nomefunzione: nome funzione richiamata in risposta all’evento
Esempio
puls_home.addEventListener(MouseEvent.CLICK,f_controlla);
function f_controlla(e){
this.play();
}
Il comando addEventListener è fondamentale: in ActionScript3 quasi ogni cosa viene gestita
tramite un evento e questo comando serve ad assegnare un listener e una funzione ad una
qualsiasi Istanza. Questo comando richiede almeno due parametri: il primo parametro è il tipo
di evento che vogliamo gestire, il secondo parametro è il nome della funzione da richiamare
quando si verifica l'evento.
Con questo sistema possiamo scrivere una funzione sola ed assegnarla a tanti pulsanti diversi,
oppure possiamo aggiungere tanti listener diversi per uno stesso pulsante, ad esempio:
3
itsosmilano.it
mioPulsante.addEventListener(MouseEvent.CLICK, f_sparisci);
function f_sparisci(m:MouseEvent) {
m.currentTarget.visible = false;
}
mioPulsante.addEventListener(MouseEvent.CLICK, f_traccia);
function f_traccia(m:MouseEvent) {
gotoAndPlay(10);
}
il codice qui sopra assegna due Listener allo stesso pulsante, per lo stesso tipo di Evento
(Click), al clic sul pulsante verranno eseguite entrambe le funzioni (f_sparisci e f_traccia).
Eventi sui pulsanti
In sostanza, gli eventi sono condizioni che si verificano di cui ActionScript è consapevole e a
cui è in grado di reagire.
Molti eventi sono collegati all'interazione dell'utente, la selezione di un pulsante o la pressione
di un tasto della tastiera, ma ne esistono anche di altri tipi. Per esempio, se si usa ActionScript
per caricare un'immagine esterna, esiste un evento che può avvertire quando l'immagine è
stata caricata completamente. In pratica, quando un programma
ActionScript è in esecuzione, Adobe Flash Player restano in attesa del verificarsi di determinati
eventi.
Quando questi eventi si realizzano, eseguono il codice specificato per quegli eventi.
Gli Eventi legati al Mouse che possiamo gestire dipendono dall'Ambiente di Runtime.
Utilizzando MouseEvent dentro Flash per un Filmato che verrà distribuito in SWF (da
visualizzare con Flash Player dentro ad un Browser Web) abbiamo a disposizione questi tipi di
eventi:








CLICK - Un Click singolo si ha quando l'utente preme il tasto sinistro del mouse e, senza
spostarlo, lo rilascia
DOUBLE_CLICK - Un Doppio Click, due Click singoli in rapida successione (*)
MOUSE_DOWN - La pressione del tasto sinistro del Mouse
MOUSE_MOVE - Intercetta il semplice movimento del Mouse
MOUSE_OUT | ROLL_OUT - Quando il Mouse esce dall'area interessata dal Listener
MOUSE_OVER | ROLL_OVER - Quando il Mouse entra nell'area interessata dal Listener
MOUSE_UP - Quando viene rilasciato il tasto sinistro del Mouse
MOUSE_WHEEL - Quando si fa scorrere la rotellina del Mouse
per utilizzare l'Evento DOUBLE_CLICK bisogna prima impostare la Proprietà doubleClickEnabled a true, in
*
questo modo:
mioPulsante.doubleClickEnabled = true;
4
itsosmilano.it
Gestione tastiera
La gestione dei tasti della tastiera avviene associando un listener allo stage e verificando se si
verifica un evento associato alla pressione o al rilascio del tasto (KEY_DOWN o KEY_UP) e,
eventualmente, il codice del tasto.
stage.addEventListener(KeyboardEvent.KEY_DOWN, f_pressione);
stage.addEventListener(KeyboardEvent.KEY_UP, f_rilascio);
function f_pressione(event:KeyboardEvent) {
// azioni
}
Costanti più importanti associate alla tastiera
Costante
Descrizione (valore numerico)
BACKSPACE
Costante associata al valore del codice tasto per il tasto Backspace (8).
CAPS_LOCK
Costante associata al valore del codice tasto per il tasto Bloc Maiusc (20).
CONTROL
Costante associata al valore del codice tasto per il tasto Ctrl (17).
DELETE
Costante associata al valore del codice tasto per il tasto Canc (46).
DOWN
Costante associata al valore del codice tasto per il tasto Freccia giù (40).
END
Costante associata al valore del codice tasto per il tasto Fine (35).
ENTER
Costante associata al valore del codice tasto per il tasto Invio (13).
ESCAPE
Costante associata al valore del codice tasto per il tasto Esc (27).
HOME
Costante associata al valore del codice tasto per il tasto Home (36).
INSERT
Costante associata al valore del codice tasto per il tasto Ins (45).
LEFT
Costante associata al valore del codice tasto per il tasto Freccia sinistra (37).
RIGHT
Costante associata al valore del codice tasto per il tasto Freccia destra (39).
SHIFT
Costante associata al valore del codice tasto per il tasto Maiusc (16).
SPACE
Costante associata al valore del codice tasto per la Barra spaziatrice (32).
TAB
Costante associata al valore del codice tasto per il tasto Tab (9).
UP
Costante associata al valore del codice tasto per il tasto Freccia su (38).
Nota
Codice del tasto A 65, del tasto B 66, ecc.
Creazione di istanze di oggetti
Per poter utilizzare un oggetto in ActionScript, l'oggetto deve già essere stato creato. Il primo
passo nella creazione di un oggetto è la dichiarazione di una variabile, vale a dire,
l'identificazione di una porzione di memoria del computer destinata a contenere dei dati. In
seguito, questo spazio vuoto va riempito assegnando un valore alla variabile, in pratica
creando un oggetto e memorizzandolo nella variabile in modo che possa diventare utilizzabile.
Il processo di creazione di un oggetto corrisponde alla creazione di un'istanza di una
particolare classe.
Esiste un modo semplice per creare un'istanza di un oggetto che non prevede l'utilizzo di
ActionScript. In Flash, quando si inserisce un simbolo di clip filmato, un simbolo di pulsante o
un campo di testo sullo stage e ad esso si assegna un nome di istanza nella finestra Proprietà,
l'applicazione dichiara automaticamente una variabile usando quel nome di istanza, crea
un'istanza dell'oggetto e memorizza l'oggetto nella variabile.
Navigazione in un filmato
Per controllare la linea temporale di un filmato, consentendo in tal modo una navigazione di
“basso livello”, sono disponibili le azioni:
interrompe il filmato attualmente in riproduzione
stop ();
play();
gotoAndStop(fotogramma);
gotoAndPlay (fotogramma);
sposta la testina di lettura in avanti nella linea temporale
invia la testina di lettura al frame specificato da
fotogramma e lo blocca in tale posizione
invia la testina di lettura al frame specificato da
fotogramma e inizia la riproduzione da tale fotogramma
5
itsosmilano.it
nextFrame();
prevFrame();
invia la testina di lettura al successivo fotogramma e lo
blocca in tale posizione
invia la testina di lettura al fotogramma precedente e lo
blocca in tale posizione
Fotogramma può essere un numero o, meglio, una etichetta.
Es.:
gotoAndPlay(10);
gotoAndPlay(“sez1”)
Navigazione con filmati multipli
È sempre utile poter caricare dei file .swf esterni in modo da non rendere il movie Flash
principale troppo pesante. In questo modo si può ad esempio creare un movie Flash principale
contenente i link alle varie sezioni del sito, sezioni che però saranno create esternamente come
file .swf importabili. Il caricamento può avvenire in modo asincrono o sincrono.
Il caricamento asincrono prevede che, una volta lanciato il processo di loading, il flusso del
programma continui senza tener conto del suo avanzamento: solo quando il file è
completamente caricato, il processo di loading lo segnala e il filmato può essere mandato in
esecuzione.
Quindi, non potendo valutare il tempo di caricamento, l'esecuzione del filmato sarà asincrona
rispetto al codice del movie Flash principale. La gestione asincrona avviene quindi tramite un
listener di eventi.
Il caricamento sincrono invece avviene in diretta sequenza di codice, senza utilizzare un
listener di eventi di caricamento.
Caricamento sincrono
Per caricare un swf in modo sincrono bisogna creare per prima cosa un oggetto Loader, si crea
quindi un oggetto per richiedere l'URL e si associa ll'URL all'oggetto Loader.
var carica= new Loader();
var req=new URLRequest(“fileSecondario.swf”);
carica.load(req);
In questo modo il file esterno viene caricato dentro l'oggetto Loader. Non ci resta che renderlo
visibile inserendolo sulla scena dell’swf principale:
addChild(loader);
In questo modo l'oggetto viene caricato sullo stage principale con posizione x=0 e y=0.
Caricamento asincrono
Per quanto riguarda il caricamento asincrono, le prime tre fasi rimangono le stesse e cioè: la
creazione di un oggetto Loader, la richiesta dell'URL e l'associazione tra i due oggetti:
var carica= new Loader();
var req=new URLRequest(“fileSecondario.swf”);
carica.load(req);
A questo punto, però, viene aggiunto un evento Listener sul caricamento del file:
carica.ContentLoaderInfo.addEventListener(Event.COMPLETE, f_completo);
L'evento è naturalmente assegnato all'oggetto carica, il quale si occupa materialmente del
caricamento del file esterno. Le istruzioni e le informazioni sul caricamento vengono però
richieste non direttamente all'oggetto Loader ma attraverso la proprietà ContentLoaderInfo.
Essa serve per estrapolare tutti i dati relativi al caricamento del file.
A quest'ultima viene quindi assegnato un Listener che rimane in “ascolto” finché non avviene
l'evento COMPLETE. Quindi, quando il caricamento è completo, viene richiamata la funzione
scritta come secondo parametro dell'evento(f_completo).
6
itsosmilano.it
La funzione richiamata contiene naturalmente l'azione di inserimento del contenuto sullo stage
del file principale:
function f_completo(e:Event){
addChild(e.target.content);
}
Anche in questo caso il file viene caricato sullo stage con posizione x=0 e y=0.
Comunicazione con l’esterno
Per collegare da un filmato Flash una pagina Web si deve utilizzare l’azione NavigateToUrl().
Questa permette di creare un normale collegamento ipertestuale (equivalente al tag <a>
dell’HTML). Per poter utilizzare NavigateToUrl() occorre prima definire la richiesta di una certa
pagina tramite l’oggetto URLRequest.
Sintassi:
var richiesta = new URLRequest (“percorso pagina”);
//viene definita la richiesta di una pagina
NavigateToUrl(richiesta di tipo URLRequest, target);
//viene comunicata la richiesta all’azione NavigateToUrl; il parametro target definisce
se caricare la pagina al posto di quella attuale (“_self”) o in una nuova finestra o
scheda (“_blank”).
Es.:
p_quadrato.addEventListener( MouseEvent.CLICK, f_carica);
function f_carica (e){
var richiesta = new URLRequest("http://itsosmilano.it");
navigateToURL(richiesta, "_blank");
}
Uso della modalità a schermo intero
La modalità a schermo intero consente di impostare lo stage di un filmato in modo che occupi
l'intero monitor senza menu o bordi del contenitore. La proprietà displayState della classe
Stage consente di attivare e disattivare la modalità a schermo intero per un file SWF. La
proprietà displayState può essere impostata su uno dei valori definiti. Per attivare la modalità a
schermo
intero,
occorre
impostare
la
proprietà displayState
su
stageDisplayState.FULL_SCREEN, per la modalità normale va impostata su NORMAL.
stage.displayState = stageDisplayState.FULL_SCREEN;
Principali Proprietà Clip Filmato
Un clip filmato flash ha delle proprietà che possono essere modificate dinamicamente tramite
le azioni ActionScript. La tabella seguente ne descrive le più importanti.
Proprietà
alpha
height
loaderInfo
rotation
totalframes
useHandCursor
scaleX
scaleY
Descrizione
I valori validi sono quelli compresi tra 0 (completamente trasparente)
e 1 (completamente opaco). Il valore predefinito è 1.
L'altezza di un'istanza di clip filmato espressa in pixel.
Restituisce un oggetto LoaderInfo contenente informazioni sul
caricamento del file al quale questo oggetto di visualizzazione
appartiene.
Es. var b_caricati = stage.loaderInfo.bytesLoaded;
Il grado di rotazione di un'istanza di clip filmato (in gradi da 0 a 360).
Il numero totale di fotogrammi in un'istanza di clip filmato.
Determina se lo strumento Mano viene visualizzato quando l'utente
posiziona il puntatore sul pulsante di un clip filmato.
Valore che specifica la percentuale di modifica in scala orizzontale di
un clip filmato; 1.0 equivale a una scala del 100%
Valore che specifica la percentuale di modifica in scala verticale di un
clip filmato; 1.0 equivale a una scala del 100%
7
itsosmilano.it
visible
width
x
y
Valore booleano che determina se un'istanza di clip filmato è nascosta
(false) o visibile (true).
La larghezza di un'istanza di clip filmato espressa in pixel.
La coordinata x di un'istanza di clip filmato (distanza in pixel del clip
filmato dal bordo sx dello stage).
La coordinata y di un'istanza di clip filmato (distanza in pixel del clip
filmato dal bordo superiore dello stage).
La modifica di un proprietà avviene con azioni aventi la seguente sintassi:
istanza_clipfilmato.proprietà = valore;
Es.:
aereo.x += 10;
// sposta un clip filmato (nome istanza “aereo”) a dx di 10 pixel
Trascinamento di un clip-filmato
Per rendere un pulsante o clip filmato trascinabili durante la riproduzione del filmato si possono
utilizzare i metodi startDrag/stopDrag()
Sintassi
istanza.startDrag();
istanza_clip.startDrag([bloccato]);
istanza_clip.startDrag([bloccato [,area]]);
istanza.stopDrag();
Argomenti
istanza: istanza del pulsante/clip da rendere trascinabile
bloccato: valore che specifica se l’oggetto trascinabile è bloccato al centro rispetto alla
posizione del mouse (true) oppure in corrispondenza del punto in cui l'utente ha fatto clic
inizialmente nel clip filmato (false). È un argomento opzionale.
area: definizione di un rettangolo di delimitazione per il movimento dell’oggetto trascinabile;
l’area viene definita tramite l’oggetto Rectangle.
Nota
È possibile trascinare un solo clip filmato alla volta. Una volta eseguita un'operazione
startDrag, il clip rimane trascinabile fino alla chiamata esplicita di un'azione stopDrag o di
un'azione startDrag per un altro clip.
Esempi
segnale.startDrag();
segnale.startDrag(false);
var area = new Rectangle(50,50,540,380);
segnale.startDrag(true,area);
segnale.stopDrag();
Rilevazione collisioni tra clip-filmato
Per rilevare le collisioni tra due clip-filmato si può utilizzare il metodo hitTestPoint
Esso verifica se un oggetto è entrato in collisione con un clip filmato e restituisce un valore
(true o false).
Sintassi
istanza.hitTestPoint(x, y, indicatoreForma);
Argomenti
istanza: istanza dell’oggetto di cui verificare la collisione
x: La coordinata x da confrontare con l’oggetto
y: La coordinata y da confrontare con l’oggetto
8
itsosmilano.it
indicatoreForma: Valore booleano (cioè true oppure false) che specifica se valutare l'intera
forma dell'istanza specificata (true) oppure solo il riquadro di limitazione (false).
Esempio
if (target.hitTestPoint(segnale.x,segnale.y,true)) {
// azioni
}
Creazione di testo
È possibile creare tre tipi di campi di testo: statico, dinamico e di input.
 Il testo statico non viene modificato durante la riproduzione
 Le caselle di testo dinamico contengono testo soggetto ad aggiornamento dinamico, ad
esempio i punteggi di incontri sportivi, le quotazioni azionarie o i bollettini meteorologici
 I campi di testo di input consentono di immettere del testo in moduli o questionari.
La finestra Proprietà consente di specificare le opzioni per controllare la modalità di
visualizzazione del testo dinamico o di input in un filmato Flash.
Tra le altre cose è possibile immettere il nome dell’istanza che permette di modificare (campi
dinamici) o rilevare (campi di input) il contenuto del campo di testo creato.
Esempi
Supponendo che l’istanza della casella dinamica sia txtNome, l’azione:
txtNome.text=”Bluetti Tatiana”;
visualizza la sequenza di caratteri Bluetti Tatiana nella casella dinamica.
Supponendo invece la variabile txtPosiz associata ad una casella di input, l’azione:
aereo.x = txtPosiz.text;
sposta l’istanza di clip filmato di nome aereo nella posizione orizzontale data dal valore inserito
nella casella di input.
9
itsosmilano.it
Caricamento di testo da un file esterno
La classe URLLoader offre un meccanismo per il caricamento di testo da un file esterno
(esempio .txt) in una casella di testo dinamico.
Le operazioni da compiere sono:
definire una variabile URLRequest con il percorso del file da caricare
definire una variabile URLLoader per il caricamento
caricare il testo tramite il metodo load
verificare se il caricamento è completo e utilizzare il testo
Esempio
var testoURL = new URLRequest("pincopallino.txt");
var carica = new URLLoader(testoURL);
carica.load(testoURL);
carica.addEventListener("complete", f_carica);
//---------------------------------------------function f_carica(e){
casella.text=e.target.data;
}
// casella é un testo dinamico
In caso di caricamento al clic su un pulsante la funzione carica andrà sostituita dalle seguenti:
function f_carica(e){
temp=e.target.data; //temp variabile temporanea
}
pulsante.addEventListener(MouseEvent.CLICK, f_vis);
function f_vis(m){
casella.text=temp;
}
10
itsosmilano.it
Uso e controllo dell’audio
Vi sono due modi per gestire in modo efficace l’audio con Flash:
Incorporamento
Viene importato il file audio nella libreria
Nel pannello Proprietà, scheda Actionscript, viene settato Esporta per Actionscript e
dato un nome alla classe
In azioni viene creato l’oggetto audio:
var nome_audio = new nome_classe();
i metodi play() e stop() permettono l’avvio e lo stop dell’audio.
Collegamento
L’audio si trova in un file esterno (es. .mp3).
Viene definita un oggetto Sound
La classe Sound consente di eseguire operazioni sui file audio in un'applicazione.
La classe Sound consente di creare un oggetto Sound, di caricare e riprodurre un file
MP3 esterno,
di interrompere l'audio e di accedere ai dati relativi al file audio, ad es. il numero di byte
del file.
Viene definito un oggetto SoundChannel
La classe SoundChannel controlla i suoni in un'applicazione.
Ogni suono viene assegnato a un canale audio e l'applicazione può avere più canali
audio mixati tra loro.
La classe SoundChannel contiene un metodo stop(), e delle proprietà (ad es. position
indica il tempo trascorso dall’inizio della riproduzione)
Viene definito il percorso del file audio tramite la classe URLRequest
La classe URLRequest permette di definire il percorso di un file esterno.
Gli oggetti URLRequest vengono passati ai metodi load() della classe Loader e ad altre
operazioni di caricamento, per avviare lo scaricamento dell'URL.
Viene avviato il caricamento dell’audio
Viene gestito l’audio (metodi play() e stop() )
Parametri del metodo play:
posizione iniziale della riproduzione in millisecondi
numero di ripetizioni
eventuali specifiche su volume, bilanciamento, ...
Esempio
var s = new Sound();
var canale:SoundChannel;
var percorso = new URLRequest("percorso.mp3");
s.load(percorso);
canale=s.play(0,100);
avvia.addEventListener(MouseEvent.CLICK,avviaSound);
stoppa.addEventListener(MouseEvent.CLICK,fermaSound);
function avviaSound(evento:MouseEvent){
canale=s.play(0,100);
}
function fermaSound(evento:MouseEvent){
canale.stop();
}
11
itsosmilano.it
Video in streaming
Le ultime versioni di Flash hanno introdotto la gestione dei filmati attraverso il formato FLV,
un tipo di file che permette livelli di compressione, risoluzioni e qualità totalmente
personalizzabili. Il processo che permette di pubblicare video in una pagina Web è molto
semplice:
si converte il file video originale in FLV utilizzando le funzionalità integrate in Flash o
programmi di compressione esterni
si crea con Flash una "cornice" di riproduzione, ovvero un filmato SWF che leggerà il file
FLV esterno precedentemente creato
si inserisce il file SWF nella pagina Web e si carica il file FLV su un server (abilitato o no allo
streming video).
Specifiche
Creazione dell’oggetto video
Un oggetto video può essere creato
tramite il pannello Libreria: Nuovo Video e si crea un’istanza sullo stage dando
un nome nel pannello Proprietà
tramite Actionscript:
var oggetto_video= new Video();
addChild(oggetto_video);
Creazione istanza di un oggetto NetConnection
La classe NetConnection fornisce il mezzo per riprodurre i file FLV in streaming da un'unità
locale o da un indirizzo HTTP
Apre una connessione locale che consente di riprodurre i file video (FLV); il parametro
deve essere sempre 'null'.
oggetto_connection.connect(null);
Creazione istanza oggetto NetStream
La classe NetStream fornisce i metodi e le proprietà per riprodurre i file FLV dal file system
locale o da un indirizzo HTTP.
var oggetto_netstream = new NetStream(obj_nc);
oggetto_video.attachNetStream(oggetto_netstream);
Riproduzione del video tramite il metodo play
Esempio
var objvideo=new Video();
addChild(objvideo);
var obj_nc = new NetConnection();
obj_nc.connect(null);
var obj_ns = new NetStream(obj_nc);
objvideo.attachNetStream(obj_ns);
obj_ns.play("percorso.flv");
12
itsosmilano.it
Oggetto Math
I metodi e le proprietà di questo oggetto consentono di accedere e gestire le costanti e le
funzioni matematiche. Tutte le proprietà e i metodi dell'oggetto Math sono statici e per
richiamarli è necessario usare la sintassi Math.metodo (parametro) o Math.costante.
Riepilogo dei metodi principali validi per l'oggetto Math
Metodo
Math.ceil
Math.floor
Math.random
Math.round
Descrizione
Arrotonda un numero per eccesso
all'intero più vicino.
Arrotonda un numero per difetto
all'intero più vicino.
Restituisce un numero pseudocasuale n dove 0 <= n < 1.
Arrotonda al numero intero più
vicino.
13
Esempio
Math.ceil(x) (con x numero o
espressione)
Math.floor(x) (con x numero o
espressione)
Math.random()
Math.round(x) (con x numero o
espressione)
itsosmilano.it
XML e Actionscript
XML è una modalità standard di rappresentazione delle informazioni strutturate che permette
ai computer di manipolarle con facilità e alle persone di scriverle e capirle senza eccessiva
difficoltà. XML impiega una struttura ad albero e tag simile a quella di HTML
Es.:
<canzone>
<titolo>
Why don’t you know?
</titolo>
<artista>
Johnny Cascaterra
</artista>
<anno>
2010
</anno>
</canzone>
Caricamento file XML
Per poter caricare un file XML in Flash occorre:
creare una variabile per contenere una istanza della classe XML
creare un'istanza della classe URLLoader per caricare il file XML
passare il contenuto del file XML nella variabile istanza XML una volta che il file è stato
completamente caricato.
Esempio
var classif = new URLRequest("classifica.xml");
var carica_classif = new URLLoader(classif);
carica_classif.load(classif);
carica_classif.addEventListener("complete", f_opera);
var squadre;
function f_opera(m){
squadre =new XML(m.target.data);
}
Elaborazione file XML
I nuovi controlli XML in ActionScript 3.0 i permettono di filtrare gli elementi attraverso la
ricerca di valori e mostrando solo quelli che corrispondono alla condizione impostata.
Supponendo il file classifica.xml così strutturato:
<campionato>
<squadra>
<nome>juve</nome>
<citta>torino</citta>
<punti>25</punti>
<golF>20</golF>
<golS>8</golS>
</squadra>
<squadra>
<nome>lazio</nome>
<citta>roma</citta>
<punti>23</punti>
<golF>16</golF>
<golS>10</golS>
</squadra>
<squadra>
14
itsosmilano.it
<nome>milan</nome>
<citta>milano</citta>
<punti>21</punti>
<golF>12</golF>
<golS>11</golS>
</squadra>
……………………………..
……………………………….
</campionato>
Si avrebbe che:
squadre.squadra[0].nome
squadre.squadra[1].citta
squadre.squadra.(nome==”milan”).punti
15
risulta juve
risulta roma
risulta 21
itsosmilano.it
APPENDICE
Controllo di una condizione
Per verificare una condizione in ActionScript si possono usare le azione if o switch/case
L'istruzione condizionale if..else consente di provare una condizione e quindi eseguire un
blocco di codice se la condizione è soddisfatta o un blocco di codice alternativo in caso
contrario.
Sintassi
if (condizione) {
azioni1;
}
else {
azioni2;
}
Note
La condizione è una espressione linguistica che può assumere i valori vero (true) o falso (false)
Se la condizione è vera verrà eseguito il blocco azioni1; se la condizione è falsa verrà eseguito
il blocco azioni2
Se non esistono azioni da eseguire quando la condizione è falsa tutto il blocco else { } viene
omesso
La condizione, nella forma base, ha la struttura sintattica seguente:
(operando1
operatore
operando2)
dove:
operando1 e operando2 sono termini da confrontare (valori numerici o testuali costanti
o variabili derivanti da risultati di calcoli o, ad es. valori di proprietà di clip, ecc.)
operatore è uno tra i seguenti operatori di confronto: == (uguale), != (diverso), >
(maggiore), < (minore), >= (maggiore o uguale), <= (minore o uguale).
Esempio
function f_conta(evento){
if (num.text< 10){
num.text=Number(num.text)+1;
}
}
L'istruzione switch è utile quando sono presenti vari percorsi di esecuzione che dipendono
dalla stessa espressione condizionale. Fornisce funzionalità simili a una lunga serie di istruzioni
if..else if, ma è più semplice da leggere.
Sintassi
switch (valore) {
case valore 1:
//gruppo azioni1
break;
case valore 2:
//gruppo azioni2
break;
………………..
case valore n:
//gruppo azionin
break;
}
16
itsosmilano.it
Esempio
function tastiera(evento){
//Verifica se vengono digitate le freccie direzionali
switch (evento.keyCode) {
case Keyboard.UP :
sole.y-=10;
break;
case Keyboard.DOWN :
sole.y+=10;
break;
case Keyboard.LEFT :
sole.x-=3;
sole.rotation-=1;
sole.alpha+=.01;
break;
case Keyboard.RIGHT :
sole.x+=3;
sole.rotation+=1;
sole.alpha-=.01;
break;
default :
break;
}
}
17