Nella vita professionale di uno sviluppatore accade prima o poi di affrontare la gestione del tempo. Sia che si lavori ad un gioco o ad un'applicazione infatti, può capitare di dover avviare un evento solo in un momento prestabilito, o ad intervalli regolari, o ancora dopo un certo numero di secondi da quando l'utente ha compiuto una determinata azione. Flash mette a disposizione alcuni comandi che, direttamente o combinati con altri, consentono di gestire il tempo all'interno del filmato SWF:
getTimer (disponibile da Flash 4)setInterval (disponibile da Flash Mx in poi)setTimeout (funzione non documentata di Flash 8)Rispettivamente, getTimer restituisce i millisecondi trascorsi dall'inizio del filmato, setInterval imposta un intervallo per cui ogni x secondi verrà chiamata una funzione, mentre setTimeout imposta un intervallo per cui dopo x secondi la funzione verrà chiamata una sola volta.
In alcuni casi, specialmente in combinazione con getTimer, viene utilizzato anche il comando onEnterFrame
Questi comandi consentono di fare praticamente qualsiasi cosa con il tempo all'interno di Flash: li analizzeremo uno ad uno, proponendo qualche esempio pratico di utilizzo, iniziando dal più "anziano": getTimer.
È il comando che garantisce la maggior compatibilità, infatti è disponibile sin dalla versione 4 del Flash Player, ed è in grado di restituire il numero di millisecondi trascorsi dall'inizio del filmato. Poichè non è possibile impostare un "punto di avvio" del conteggio, questa funzione potrebbe apparire piuttosto limitata, ma con pochi accorgimenti si rivela utile in molteplici occasioni.
Sintassi di getTimer()
//Associamo ad una variabile il valore restituito da getTimer
variabile = getTimer();
Vogliamo mostrare in un campo di testo il numero di secondi trascorsi dall'inizio del filmato. Per prima cosa creiamo il campo di testo dinamico (con nome istanza "tempo") sullo stage, quindi nelle azioni del primo fotogramma scriviamo:
_root.onEnterFrame = function(){
tempo.text = int(getTimer()/1000) + " secondi"
}
Ad ogni fotogramma della timeline principale verrà aggiornato il campo di testo "tempo", e vi sarà scritto il valore di getTimer (diviso per 1000, per ottenere i secondi, e arrotondato all'intero) accompagnato dalla scritta "secondi".
Abbiamo utilizzato il comando onEnterFrame per rendere l'azione continua: un altro metodo usato per tale scopo, specialmente in versioni precedenti a Flash Mx, era quello di creare due fotogrammi sulla timeline, con l'azione da ripetere sul primo fotogramma, in modo che il filmato ripartisse di continuo e ri-eseguisse l'azione. L'utilizzo di un EnterFrame è decisamente più comodo, quindi assolutamente consigliato per chi abbia versioni di Flash superiori alla 5.
|
Creare l'effetto Time Machine di Leopard in Actionscript 3.0 |
Guida ActionScript 3 di baseApprendere, in poche lezioni, le nozioni fondamentali per gestire... |
Guida FlashDevelopInstallare e usare FlashDevelop, potente ambiente di sviluppo open... |
Guida Flash Builder 4Un percorso alla scoperta delle potenzialità più importanti... |
Ogni martedì, guide, articoli, FAQ, movie, audio su Macromedia Flash e Actionscript direttamente nella tua casella di posta
Iscriviti alla newsletter
|
|
Corso Google AdWords Base25 Giugno 2012 a Milano |
|
|
Corso Google AdWords Base05 Giugno 2012 a Roma |