How I Did It: scrivere un countdown in Flash
venerdì 14 settembre, 2007Per la serie "How I Did It" (ovvero come lo feci) ecco come realizzare un countdown in Flash per visualizzare, partendo da un data, quanto giorni, ore, minuti e secondi mancano ad un evento! Nel filmato Flash qui sotto, ad esempio, vediamo quanti giorni mancano al primo dell'anno! Possono essere utilizzati i menu a tendina per selezionare un diversa data:
Creiamo tre combo day_cmb, month_cmb ed year_cmb e li inizializziamo:
-
// init combo
-
import mx.controls.ComboBox;
-
//
-
for (var i = 1; i <32; i++) {
-
day_cmb.addItem(i, i);
-
}
-
for (var i = 0; i <12; i++) {
-
month_cmb.addItem(sm[i], i);
-
}
-
// potrei partire dall'anno attuale...
-
for (var i = 2007; i <2020; i++) {
-
year_cmb.addItem(i, i);
-
}
-
// imposto la data al 1 gennaio 2008
-
day_cmb.selectedIndex = 0; // -1
-
month_cmb.selectedIndex = 0; // -1
-
year_cmb.selectedIndex = 1;
Il cuore del sistema lo posizioniamo nell'evento onEnterFrame:
-
this.onEnterFrame = function() {
-
//
-
var currentYear = today.getFullYear();
-
var currentTime = today.getTime();
-
//
-
var targetTime = targetDate.getTime();
-
//
-
var timeLeft = targetTime - currentTime;
-
//
-
//
-
sec = (sec.length <2) ? "0" + sec : sec;
-
//
-
min = (min.length <2) ? "0" + min : min;
-
//
-
hrs = (hrs.length <2) ? "0" + hrs : hrs;
-
//
-
days = (days.length <2) ? "0" + days : days;
-
//
-
//
-
time_txt.text = counter;
-
};










19

Stavo cercando se ci sono bachi per quanto riguarda la gestione Date() di flash e Google mi ha portato qui. Stavo provando un contdown simile a questo e ho notato che sbagliava di un ora. Ma solo se di mezzo c'è un cambio mese; potete provarlo anche sopra. Aumentando di un mese (passando dall'attuale a quello successivo) non solo si incrementano i giorni (di 30 o 31 che sia) ma si incrementa anche l'ora di un unità... Baco o non baco?
Ovviamente non ho calcolato il fuso orario... Errore mio...
[...] post 3D CountDown con FIVe3D (vedi anche How I Did It: scrivere un countdown in Flash), veniva proposta una classe per la creazione di un oggetto CountDown in Actionscript, eccone una [...]
Salve, come faccio ad inserire la funzione ORA PRECISA dell'evento?
Mi spiego:
In questo countdown si puo' solo mettere una data GG/MM/HH come faccio a mettere l'ora precisa di quel giorno??
Esempio:
12 Gennaio 2009 ore 15,00
Grazie
@Fabrizio: nella riga 7 del secondo listato uso la
new Date()per creare la data di arrivo del countdown. Come vedi, in questo esempio, vengono passati alla funzione costruttore l'anno, il mese e il giorno. Tuttavia la funzione costruttore dinew Date(), come puoi verificare dall'Help di Flash, accetta ulteriori parametri (opzionali) come l'ora, minuti, secondi e millisecondi.@Giovambattista Fazioli:
Ok questo l'ho risolto, sono riuscito a mettere l'ora precisa, adesso mi servirebbe inserire un messaggio alla fine del countdown anzichè fare continuare il countdown, non so se sono stato chiaro.
tipo alla fine del countdown mi piacerebbe che scrivesse OFFERTA SCADUTA.
Grazie sempre
@Fabrizio: anche questo è abbastanza semplice. Alla riga 10 viene valorizzata la variabile
timeLeft, che rappresenta la differenza tra l'ora attuale e quella di destinazione. Quando questa variabile è uguale a zero (o è minore di zero) significa che il "tempo" è scaduto.@Giovambattista Fazioli:
perfavore potresti fare un esempio di come dovrebbe essere della riga 10 se alla fine del countdown volessi aggiungere OFFERTA SCADUTA.
Grazie
P.S. scusami ma sto iniziando ora ad usare flash..
@Giovambattista Fazioli:
Non ci riesco proprio mannaggia a me.
ascolta e se volessi fare fermare il countdown alla fine del conto alla rovescia che devo fare??
Il mio attualmente quando raggiunge la fine del tempo continua a dare numeri con un segno meno che devo fare???
Grazie sempre