Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

I loop

Ecco i diversi tipi di cicli che è possibile ricreare in Flash.
Ecco i diversi tipi di cicli che è possibile ricreare in Flash.
Link copiato negli appunti

Chi ha usato Flash4 si ricorderà sicuramente il problema dei loop. Non
esistevano istruzioni dedicate, e così bisognava arrangiarsi giocando con i
frame per la ripetizione.
In Flash5 però questo problema è superato. Abbiamo a disposizione una serie di
istruzioni per il loop molto vasta.

while e do...while
L'azione while necessita di un'espressione e, se questa è vera, esegue lo script compreso tra le parentesi graffe:

i = 0;
while (i < 10) {
  i++;
  logo.duplicateMovieClip("logo" + i, i);
}

In questo caso, l'azione viene eseguita per 10 volte.
Tramite l'azione do...while invece, il controllo viene eseguito alla fine dello script:

i = 0;
do {
  i++;
  logo.duplicateMovieClip("logo" + i, i);
} while (i < 10)

Anche in questo caso lo script viene eseguito per 10 volte. Ma allora dov'è
sta la differenza tra le due istruzioni? La differenza sostanziale sta nel fatto
che, nel secondo esempio lo script viene eseguito almeno una volta, mentre nel primo no, in quanto la condizione viene verificata all'inizio del loop.

for e for...in
Nell'istruzione for la variabile di loop (i generalmente) viene integrata negli argomenti dell'istruzione. La sintassi per l'istruzione è:

for
(inizializzazione; condizione; passaggio) {
  ...
}

Dove in inizializzazione viene inserita la variabile contatore con il suo valore iniziale; in condizione la condizione per cui il loop deve essere eseguito; infine in passaggio l'operazione da eseguire ad ogni loop.
In pratica, gli esempi precedenti vengono tradotti in:

for (i = 0; i < 10; i++) {
  logo.duplicateMovieClip("logo" + i, i);
}

L'istruzione for..in permette un ciclo tra gli elementi secondari di un oggetto (o movieclip).
Ecco un esempio:

//Inizializzo l'oggetto "utenti"
utenti = { nome:'Paolo', cognome:'Rossi', citta:'Rimini'};
//Loop per le sue proprietà
for (propertyName in utenti) {
  trace (propertyName + ": " + utenti[propertyName];
}

Questo script genera nella finestra di Output questo testo:

nome: Paolo
cognome: Rossi
citta: Rimini

Il loop quindi, è stato eseguito per ogni proprietà dell'oggetto utenti.

break e continue
Le istruzioni viste finora mettono a disposizione altre due azioni (break
e continue
) che permettono di gestire l'uscita o il "salto" del loop. Mi spiego..
Utilizzando l'azione break all'interno di un loop, questa genera l'uscita dal loop stesso. In questo esempio:

while (i < 10) {
  i++;
  //Verifico se la password è corretta
  if (eval("password" + i) == "flash") {
    break;
  }
}

la password viene verificata per 10 volte. Se all'interno del loop, una delle variabili passwordn è uguale a "flash",
viene eseguito break che termina il loop.

Con l'azione continue invece, il risultato cambia a seconda del loop usato:

  • while = il loop viene interrotto e rimandato alla condizione (in alto);
  • do...while = il loop viene interrotto e rimandato alla condizione (in basso);
  • for = il loop viene interrotto e rimandato alla condizione iniziale;
  • for..in = il loop viene interrotto e rimandato all'inizio del ciclo per elaborare il successivo valore.

Ti consigliamo anche