La Classe Timer in Actionscript 3.0
(scritto da , il giorno 11-04-2008 02:43)
Una nuova classe che è stata introdotta in Actionscript 3.0 è la Timer. Questa classe permette, sulla falsa riga di setInterval, di gestire in un determinato lasso di tempo determinate informazioni. In questo tutorial creeremo un orologio analogico le cui l'impostazione delle lancette saranno gestite tramite questa classe
Una nuova classe che è stata introdotta in Actionscript 3.0 è la Timer. Questa classe permette, sulla falsa riga di setInterval, di gestire in un determinato lasso di tempo determinate informazioni. In questo tutorial creeremo un orologio analogico le cui lancette saranno appunto impostate tramite questa classe.
La classe Timer è l'interfaccia per i timer di Flash Player. Per poter utilizzare questa classe basterà impostare il metodo start() per avviarla.
È possibile creare oggetti Timer che vengono eseguiti una volta oppure si ripetono a intervalli prestabiliti per eseguire il codice in una pianificazione. A seconda della velocità di esecuzione della timeline del file SWF o dell'ambiente Flash Player , il player stesso, potrebbe inviare gli eventi a intervalli leggermente sfalsati. Almeno stando alla documentazione ufficiale.
L'uso della classe Timer è sicuramente consigliata come ottimo sostituto del setInterval, permettendo di lavorare con maggiore precisione ed evitare un inutile spreco di risorse di RAM, e soprattutto migliora le prestazione anche se sostituto con la costante ENTER_FRAME della classe Event.
Per questo lavoro utilizzeremo ovviamente Flash CS3.
Sullo stage poniamo 3 movie clip (istanza dello stesso oggetto): una barra verticale con punto di registrazione in basso.
Queste tre clip si chiameranno: secondi_mc, minuti_mc, ora_mc.
import flash.events.TimerEvent; var ora:TextField=new TextField(); var tempo:Timer=new Timer(1000);
Abbiamo inserito la classe necessaria a gestire gli eventi legati alla classe Timer, quindi abbiamo creato un'istanza della classe TextField dove riscrivere l'orario effettivo.
Ora inseriamo semplicemente la funzione ed il listener necessari:
function lancetta(e:TimerEvent) { var orario:Date=new Date(); secondi_mc.rotation=(orario.getSeconds()*(360/60)); ora_mc.rotation=(orario.getHours()*(360/12)); minuti_mc.rotation=(orario.getMinutes()*(360/60)); ora.text=orario.getHours()+":"+orario.getMinutes()+":"+orario.getSeconds(); } tempo.addEventListener(TimerEvent.TIMER, lancetta); tempo.start();
Come noterete abbiamo impostato le proprietà di rotazione delle lancette suddividendo i 360 gradi di rotazione.
Al termine rimane il listener con il metodo start per avviare le animazioni.
Riassumendo quindi:
import flash.events.TimerEvent; var ora:TextField=new TextField(); var tempo:Timer=new Timer(1000); addChild(ora); function lancetta(e:TimerEvent) { var orario:Date=new Date(); secondi_mc.rotation=(orario.getSeconds()*(360/60)); ora_mc.rotation=(orario.getHours()*(360/12)); minuti_mc.rotation=(orario.getMinutes()*(360/60)); ora.text=orario.getHours()+":"+orario.getMinutes()+":"+orario.getSeconds(); } tempo.addEventListener(TimerEvent.TIMER, lancetta); tempo.start();
Commenti (0)
Registrati ed esegui il login se vuoi lasciare un commento
Scarica o stampa l'articolo "La Classe Timer in Actionscript 3.0" in formato PDF
Torna indietro









