ActionScript: Ripetendo un funzionamento molte volte
Desiderate effettuare i tempi multipli di operazione all'interno di singola struttura. Usi un ciclo per effettuare gli stessi tempi multipli di operazione all'interno di singola struttura. Per esempio, potete usare la a per la dichiarazione: per (varietà i = 0; i < 10; i++) {//
esposizione il valore del trace(i) del i.; }
Quando desiderate eseguire gli stessi di azione variazioni leggere o (tempi multipli di ciò) all'interno di singola struttura, usi una dichiarazione di ciclaggio per rendere il vostro codice più breve, più facile leggere e più facile aggiornare. Potete usare una dichiarazione di istante o una a per la dichiarazione a questo fine, ma la a per la dichiarazione è generalmente la scelta migliore. Entrambe le dichiarazione raggiungono lo stesso risultato, ma per la dichiarazione ha più compatto e più familiarità alla maggior parte dei programmatori. La sintassi della a per la dichiarazione consiste di cinque parti di base: Per la parola chiave Ogni per la dichiarazione deve cominciare con la a per la parola chiave. Espressione di inizio Il ciclo impiega tipicamente una variabile di indice (a.k.a. un contatore del ciclo) che è inizializzata quando la dichiarazione in primo luogo è incontrata. L'inizio è effettuato soltanto una volta senza riguardo a quante volte il ciclo è ripetuto. Verifichi l'espressione Un ciclo dovrebbe includere un'espressione della prova che restituisce allineare o falso. L'espressione della prova è valutata una volta ogni volta attraverso il ciclo. Generalmente, l'espressione della prova confronta la variabile di indice ad un altro valore, quale un numero massimo delle ripetizioni del ciclo. L'espressione generale deve valutare per allineare per affinchè il corpo della dichiarazione esegua (contrapponga questo con la a. . . mentre ciclo, che esegue almeno una volta, anche se l'espressione della prova è falsa). D'altra parte, se l'espressione della prova non diventa mai falsa, genererete un ciclo infinito, con conseguente avvertimento che il giocatore istantaneo sta facendo funzionare lentamente (che compare dopo 15 secondi). Espressione dell'aggiornamento L'espressione dell'aggiornamento aggiorna solitamente il valore della variabile usata nell'espressione della prova in modo che, ad un certo punto, l'espressione della prova diventi falsa e nelle estremità del ciclo. L'espressione dell'aggiornamento è eseguita una volta ogni volta attraverso il ciclo. Un ciclo infinito è causato spesso non riuscendo ad aggiornare la variabile adatta nell'espressione dell'aggiornamento (solitamente la stessa variabile usata nell'espressione della prova). Corpo di dichiarazione Il corpo di dichiarazione è un blocco dei substatements chiusi in sostegni ricci che è eseguito ogni volta attraverso il ciclo. Se l'espressione della prova non è mai allineare, per il corpo della dichiarazione non sarà eseguito. Per la parola chiave dovrebbe venire in primo luogo e dovrebbe essere seguita dall'inizio, dalla prova e dalle espressioni dell'aggiornamento chiuse tra parentesi. I punti e virgola devono separare le tre espressioni l'un l'altro (anche se l'inizio, la prova e le dichiarazione dell'aggiornamento sono facoltativi, i punti e virgola sono obbligatori). Il resto del per il ciclo si compone di corpo di dichiarazione chiuso in sostegni ricci. La forma generale è: per (inizio; prova; aggiornamento) {corpo di
dichiarazione}
Qui è un esempio della a per la dichiarazione che produce i numeri 0 - 999. Poiché la variabile i di indice è una variabile locale, la introduciamo con la parola chiave di varietà nell'espressione di inizio. per (varietà i = 0; i < 1000; i++) {trace(i);
} traccia ("che è l'estremità.");
Per capire per la dichiarazione, potete seguire con l'interpretatore di ActionScript come esso procedete l'ordine. Nell'esempio preceding, per la parola chiave dice all'interpretatore di effettuare finchè le dichiarazione all'interno del per il ciclo l'espressione condizionale è allineare. L'espressione di inizio è eseguita soltanto una volta e regola le variabili i - 0. Dopo, l'interpretatore controlla l'espressione della prova (i < 1000). Poiché la i è 0, che è meno di 1000, l'espressione valuta per allineare e l'azione del trace() all'interno del per il corpo di dichiarazione è eseguita. L'interpretatore di ActionScript allora esegue la dichiarazione dell'aggiornamento, in questo caso i++, che incrementi i da 1. L'interpretatore allora ripete il processo dalla parte superiore del ciclo (ma salta il punto di inizio). Così l'interpretatore controlla ancora se l'espressione della prova sia allineare e, in caso affermativo, esegue ancora il corpo di dichiarazione. Allora esegue ancora la dichiarazione dell'aggiornamento. Ripetizioni di questo processo fino all'espressione della prova non è più allineare. L'ultimo valore visualizzato nella finestra dell'uscita è 999, perché una volta che la i incremented a 1000, l'espressione della prova più non valuta per allineare ed il ciclo termina. Una volta che il ciclo termina, l'esecuzione continua con che cosa ordini seguono il ciclo. Sia le espressioni dell'aggiornamento che di inizio possono includere le azioni multiple separate dalle virgole. I seguenti di esempio incrementi simultaneamente i e decremente J ed esposizioni i loro valori nella finestra dell'uscita: per (varietà i = 0, J = 10; i < 10; i++, --)
di J {trace("i è" + i); il trace("j è" + j); }
L'esempio preceding non è lo stesso del usando due annidati per le dichiarazione (che è indicato nel blocchetto seguente di codice). È inoltre terreno comunale ad uso annidato per le dichiarazione. Quando usate annidato per la dichiarazione, usi una variabile differente di indice che quello usato nell'esterno per il ciclo. Dalla convenzione, l'esterno per il ciclo usa la variabile i ed annidato per il ciclo usa J variabile. Per esempio: per (varietà i = 1; i < = 3; i++) {per
(varietà J = 1; J < = 2; j++) {trace(i + "X" + J + "=" +
(i * j)); }}
L'esempio preceding visualizza la seguente tabella di moltiplicazione nella finestra dell'uscita: 1 X 1 = 1 1 X 2 = 2 2 X 1 = 2 2 X 2 = 4 3 X 1 = 3 3 X 2 = 6 È possibile annidare i livelli multipli per delle dichiarazione. Dalla convenzione, ogni livello supplementare dell'incastramento usa il carattere alfabetico seguente come la variabile di indice. Di conseguenza, il terzo livello dell'annidato di per le dichiarazione usa tipicamente K come la variabile di indice: per (varietà i = 1; i < = 3; i++) {per
(varietà J = 1; J < = 3; j++) {per (varietà K = 1;
K < = 3; k++) {trace(i + "X" + J + "X" + K + "=" + (i * J
* k)); }}}
Ulteriormente, potete usare per le dichiarazione collegare indietro: //conteggio indietro 10 - 1. per (varietà i = 10; i
> 0; i --) {trace(i); }
Non dovreste usare la a per la dichiarazione per effettuare le mansioni col tempo. Molti programmatori fanno l'errore di provare ad usare per le dichiarazione animare le clip di film. Per esempio: per (varietà i = 0; i < 20; i++)
{myMovieClip._x + = 10; }
Anche se il codice preceding sposta i pixel della clip 200 di film alla destra del relativo punto di partenza, tutti gli aggiornamenti avvengono all'interno della stessa struttura. Ci sono due problemi con questo. In primo luogo, gli aggiornamenti della fase soltanto una volta per la struttura, così soltanto l'ultimo aggiornamento è indicato sulla fase (che induce la clip di film a saltare improvvisamente 200 pixel piuttosto che che si muove uniformemente a 20 punti). Ed in secondo luogo, anche se la fase aggiorna più spesso, ogni ripetizione con per il ciclo occorre soltanto alcuni millisecondi, in modo da la animazione accadrebbe troppo rapidamente. Per le azioni che desiderate avvenire col tempo, usi un alimentatore del onEnterFrame(). Inoltre, i cicli ripetenti stretti non dovrebbero essere usati per realizzare i processi lunghi (qualche cosa che prenda più di una frazione di un secondo). Il giocatore istantaneo visualizza un avvertimento ogni volta che un singolo ciclo esegue per più di 15 secondi. Usando un alimentatore del onEnterFrame() o la funzione del setInterval() evita il messaggio d'avvertimento e che permette che il flash realizzi altre azioni oltre che le azioni ripetute che fanno parte del ciclo. ciò è un articolo aggiunto da Gabriel Savimbi
|
|||
|