Talvota, lavorando o studiando nuove classi, nuovi linguaggi capita di imbattersi in esempi ed esercizi che da una parte rafforzano le proprie conoscenze, dall'altro permettono di dare sfogo alla propria creatività. E' il caso, come questo di un "contatore alla rovescia" creato in actionscript 3, mutuato da actionscript 2.
Questo piccolo esempio vi permetterà di creare dei contatori come quello abbiamo creato per il nostro blog e che trovate (o avete trovato) nel nostro sul sito per il conto alla rovescia per l'evento di AdobeLive.
Per prima cosa creiamo la funzione che genererà il conteggio:
function conta(){
var oggi:Date=new Date();
var dataCorrente=oggi.getTime();
var giornoFinale:Date=new Date(2007,9,15);//DATA DA CAMBIARE
Creiamo quindi un'istanza dell'oggetto "Date", ci facciamo ridare il tempo corrente, quindi ci segniamo la data finale, quella del momento finale che ci interessa (in questo caso il 15 ottobre 2007)
Quindi ci segniamo i giorni di differenza.
var giorniMancanti:Number=dataFinale-dataCorrente;
Ora, a scalare progressivamente ci calcoliamo quanti secondi, minuti, ore, giorni mancano.
var sec=Math.floor(giorniMancanti/1000);
var min=Math.floor(sec/60);
var hrs=Math.floor(min/60);
var days=Math.floor(hrs/24);
A questo punto non ci resta che segnarci il "resto" dei secondi in modo tale da far si che ogni 60 secondi aggiunga 1 minuto alla variabile dei minuti. Ogni 60 minuti, aggiunga 1 ora alla variabile delle ore, ecc..:
sec=(sec%60).toString();
if(sec<10){
sec="0"+sec;
}
min=(min%60).toString();
if (min.length<2){
min="0"+min;
}
hrs=(hrs%24).toString();
if (hrs.length<2){
hrs="0"+hrs;
}
days=(days).toString();
Ora non resta che scrivere tutto nei campi di testo sullo stage, per poter visualizzare il risultato della nostra elaborazione:
giorni_txt.text=days;
ore_txt.text=hrs;
min_txt.text=min;
sec_txt.text=sec;
}
Concludiamo il tutto richiamando la funzione più volte nell'arco del tempo per far si che il contatore scali progressivamente il tempo già dai secondi:
setInterval(conta, 10);







