Breve parentesi per apprendisti
Prima di continuare apro un breve parentesi sugli operatori di eguaglianza ed assegnazione.
L'operatore di assegnazione il classico =
(uguale). Tramite questo, è possibile assegnare un valore ad una variabile (come già visto).
L'operatore di eguaglianza invece, è il ==
, con cui è possibile verificare l'uguaglianza tra due variabili (se i loro valori sono identici o meno).
Detto questo, continuiamo con le lezioni...
Condizione If
L'istruzione if
è detta "condizione" perché permette di controllare una condizione e di effettuare diverse azioni a seconda che la condizione si sia avverata o meno.
Esempio pratico
Provate prima a fare una verifica con i due valori già presenti, poi provate ad immettere due valori differenti. Come potete vedere, ho utilizzato l'operatore di eguaglianza e non di assegnazione al momento della verifica. Attenti a non sbagliare! È molto importante capire la differenza tra i due operatori.
Script per il bottone "Verifica"
on (release) {
if (n1==n2) {
risp = "vera";
} else {
risp = "falsa";
}
}
Tradotto in italiano: (salto la riga on(release) )
se n1 è eguale a n2 allora assegna a risp la stringa "vera" altrimenti assegna a risp la stringa "falsa".
L'azione risp = "vera";
è compresa tra le parentesi graffe che identificano l'avverarsi della condizione, mentre risp = "falsa";
è compresa all'interno dell'istruzione else
che identifica il non avverarsi della condizione (altrimenti). Immagino non ci sia bisogno di dire che n1
, n2
e risp
sono le tre caselle di testo.
Ecco un altro esempio:
In questo caso lo script cambia leggermente:
on (release) {
if (Number(n1) > Number(n2)) {
risp = "più alto";
} else {
risp = "più basso";
}
}
Per stabilire se il primo numero è maggiore del secondo, ho utilizzato l'operatore >
(maggiore).
Tradotto in italiano: (salto la riga on(release) )
se n1 è maggiore di n2 allora assegna a risp la stringa "più alto" altrimenti assegna a risp la stringa "più basso".
Questo esempio però non controlla l'eguaglianza tra le due variabili. Ho dovuto utilizzare la funzione Number()
perché l'operatore >
può essere utilizzato anche come confronto tra due stringhe (in base all'ordine alfabetico).
Operatori di confronto
L'operatore > fa parte di questa categoria:
Operatori |
|
> | Maggiore di |
< | Minore di |
>= | Maggiore o uguale a |
<= | Minore o uguale a |
Tramite questi operatori è possibile confrontare due variabili e stabilire quali delle due è maggiore/minore (o uguale) all'altra.
Operatori logici
Gli operatori logici vengono utilizzati con l'istruzione if
.
Essi sono:
Operatori |
|
&& | AND |
|| | OR |
! | NOT |
Piccola precisazione: il tasto per digitare le due "barre" dell'operatore OR è quello prima del tasto 1 nella tastiera, sulla destra.
A cosa servono questi operatori? Ve lo spiego subito con un esempio...
|| (or)
All'interno del nostro filmato vi è un modulo per l'invio di dati, non vi sembra "elegante" inserire un controllo sui campi? Cioè, dopo che l'utente ha cliccato sul bottone "invia", il filmato fa una verifica e, se tutti i campi sono stati compilati, il modulo viene inviato altrimenti viene visualizzato un messaggio che indica di compilare completamente il modulo.
Script per il bottone "Invia"
on (release) {
if (String(nome) == "" || String(email) == "") {
gotoAndStop ("errore");
} else {
gotoAndStop("inviato");
}
}
Traduzione
se nome è vuota (uguale a "" significa vuota) oppure email è vuota allora visualizza l'errore altrimenti invia il modulo
Tramite ||
la condizione if
si avvera se nome
oppure email
sono nulli... Quindi si avvera se almeno uno dei due operandi risulta vero.
In questo esempio ho dovuto necessariamente utilizzare la funzione String()
che permette di trasformare in stringa un valore numerico (purtroppo è necessario, altrimenti Flash non interpreta le "" come un "non inserimento").
&& (and)
L'operatore &&
invece, implica che tutt'e due gli operandi siano veri altrimenti, non viene soddisfatta la condizione. Se nel caso precedente avessi inserito l'operatore &&
al posto di ||
il risultato sarebbe stato che il gotoAndStop("errore");
sarebbe stato eseguito solo se sia il campo nome
, sia il campo email
fossero stati vuoti.
! (not)
Il !
logico invece, viene utilizzato in coppia con gli altri operatori. Per esempio, utilizzando !=
in una condizione if
, Flash la interpreta come un "non uguale" e cioè disuguale.
Azione per il bottone "Invia"
on (release) {
if (String(nome) != "flash") {
gotoAndStop ("errore");
} else {
gotoAndStop ("inviato");
}
}
Traduzione
se nome non è uguale a flash allora visualizza l'errore altrimenti invia il modulo