|
Flash - Il ciclo If-Else-Else If
Pagina :
1 |
2
|
3
|
4
Capita
molto spesso, durante un'animazione, che si debba far prendere al
programma o all'utente una decisione che influenzerà il normale
corso dello script.
Quindi possiamo affermare che una decisione
condiziona un programma a fare una cosa piuttosto che un'altra.
Se stiamo a guardare, tutto è frutto
di scelte che condizionano un particolare flusso di avvenimenti (ci
mancava il filosofo...).
Se ci alziamo una mattina, sicuri di acchiappare la moto per uscire
e appena mettiamo il naso fuori dalla finestra ci accorgiamo che sta
piovendo a catinelle, a meno che non siamo sciroccati o masochisti
sicuramente cambieremo idea e prenderemo macchina e ombrello.
Ecco, abbiamo appena eseguito quello
che in programmazione viene definita Istruzione Condizionale
e cioè abbiamo eseguito un'azione in base ad una particolare
condizione.
Anche Flash può ragionare così (non
che si accorga se piove, ma qualcosina può fare anche lui...).
Di che cosa è composta un'istruzione
condizionale ?
Nella normale programmazione di tre parti ben distinte, delle quali
due viaggiano sempre accoppiate, mentre una terza è opzionale e
aumenta le possibilità di esecuzione: IF - THEN - ELSE che in
italiano si traducono in SE - ALLORA - OPPURE e l'esecuzione
di questa istruzione porta sempre a due soli risultati: Vero
e Falso.
Naturalmente Flash non poteva essere
come gli altri, quindi le istruzioni diventano If - Else - Else
If.
Cominciamo con un esempio base (solo
If):
If (inserimento eq
"flash" or inserimento eq "Flash" or inserimento eq "FLASH")
Set Variable: "risultato" = "Bravo, hai scritto quello che ti ho
detto"
End If
Questo ciclo controlla che la
variabile inserimento contenga la stringa flash oppure
Flash oppure FLASH (tre modi di scrivere la stessa
parola).
Se la variabile contiene questa stringa (e quindi la condizione è
Vero), allora setta la variabile risultato con la stringa
indicata.
In caso contrario (e quindi la condizione è Falso), non
esegue il Set Variable ma salta a End If dove di
seguito potranno essere presenti altri comandi.
Evolvendo un po' le cose si può fare
questo esempio (If - Else):
Qui, il movie è stato istruito ad
accettare come buona e cioè come Vero, la condizione
dell'inserimento della parola Flash all'interno della casella
di fianco al pulsante.
Nel caso si provi a digitare un'altra parola, la condizione
restituirà Falso e il movie si comporterà di conseguenza.
Il pulsante fa partire questo controllo.
La serie di actions usate sono le
seguenti:
On (Release)
If (inserimento eq "flash" or inserimento eq "Flash" or inserimento
eq "FLASH")
Set Variable: "risultato" = "Bravo, hai scritto quello che ti ho
detto"
Else
Set Variable: "risultato" = "Non mi pare che tu abbia scritto quello
che ti ho detto..."
End If
End On
Tradotto in umane parole, funziona
così:
On (Release)
|
Al rilascio del pulsante. |
If (inserimento eq "flash" or
inserimento eq "Flash" or inserimento eq "FLASH")
|
Se
la variabile inserimento contiene la stringa flash
oppure Flash oppure FLASH (e quindi la condizione
è Vero). |
Set Variable: "risultato" =
"Bravo, hai scritto quello che ti ho detto"
|
Allora setta la variabile
risultato con questa stringa (praticamente ci si occupa del
THEN senza doverlo scrivere in maniera visibile, basta
inserire l'istruzione subito sotto il comando If). |
Else
|
Oppure (se la condizione è
Falso). |
Set Variable: "risultato" =
"Non mi pare che tu abbia scritto quello che ti ho detto..."
|
Setta la variabile risultato
con questa stringa. |
End If
|
Fine del ciclo di controllo. |
| End On |
Fine del controllo sul pulsante. |
Ed ecco un terzo esempio (If - Else - If -
Else...)
Qui abbiamo programmato il movie e rispondere in
maniera differente per ognuna delle parole previste e anche
per quelle impreviste... :-)
Questo è il codice inserito nel pulsante:
On (Release)
If (inserimento eq "sole" or inserimento eq "Sole" or inserimento eq
"SOLE")
Set Variable: "risultato" = "Allora lascio a casa l'ombrello"
Else
If (inserimento eq "nuvolo" or inserimento eq "Nuvolo" or
inserimento eq "NUVOLO")
Set Variable: "risultato" = "Sarà il caso di prendere l'ombrello ?"
Else
If (inserimento eq "piove" or inserimento eq "Piove" or inserimento
eq "PIOVE")
Set Variable: "risultato" = "Allora prendo l'ombrello"
Else
If (inserimento eq "nevica" or inserimento eq "Nevica" or
inserimento eq "NEVICA")
Set Variable: "risultato" = "Andiamo a sciare ?"
Else
Set Variable: "risultato" = "Come scusa ? Non ho capito..."
End If
End If
End If
End If
End On
Come si può notare, ognuna delle
risposte ha un ciclo if dedicato che controlla l'inserimento e
decide dove andare.
Questa tecnica è detta dei cicli nidificati, cioè uno dentro
l'altro.
A questo punto i puristi della
programmazione in Flash potranno storcere il naso, dato che la
stessa cosa si sarebbe potuta realizzare con il sistema if - else
if e cioè:
On (Release)
If (inserimento eq "sole" or inserimento eq "Sole" or inserimento eq
"SOLE")
Set Variable: "risultato" = "Allora lascio a casa l'ombrello"
Else If (inserimento eq "nuvolo" or inserimento eq "Nuvolo" or
inserimento eq "NUVOLO")
Set Variable: "risultato" = "Sarà il caso di prendere l'ombrello ?"
ecc. ecc.
Che cosa cambia ?
Un tot di end if in meno al fondo.
Sinceramente non vedo molto la differenza, è tutta una questione di
come ci si trova meglio.
Sappiate comunque che funzionano tutti e due.
Ecco fatto.
Chiaramente questi sono solo alcuni esempi e il ciclo if non si
limita solo a questo.
Avendo la possibilità di gestire un controllo versatile come questo
si possono far cambiare valori a delle variabili, dirigere un flusso
di dati in una direzione piuttosto che in un'altra oppure far
decidere in base ad un range di valori diversi e quindi far reagire
il programma in maniera più "morbida" rispetto al semplice sì o no.
Pagina :
1
|
2 |
3 |
4
|