Flash: errore in countdown

Di: Joaquimgf | 26/09/2020 18:55:17
Ciao a tutti e complimenti per il forum...
Sto cercando di creare un countdown svilupatto in due fasi.
1. Calcolo del tempo rimasto.
2. allo scadere nei ultimi 10 sec nel frame 3 parte un 2 countdown stile cinema

Nei script che vedete qui sotto ho impostato come secondsRound +10 solo che scatta allo scadere dei 10 secondi rimanenti di ogni minuto.
Spero che qualacuno mi possa aiutare....
Grazie
PC - Flash 8
Windows XP PRO
_________________________________________________________
currentDate = new Date();
// NOTA: flash parte il countdown con il mese 0 , quindi Gennaio e il mese 0 e Dicembre e il mese 11.
// NOTA: flash parte il countdown con il giorno 0 , quindi va imposta sempre con + 1 giorno.
// la data da inserire e espressa in questo seguente modo : ANNO, MESE, GIORNO, ORA, MINUTI, SECONDI.
// le ore e i minuti non devono essere mai precedute da un zero.
// esempio: sbagliato -(2005, 03, 14, 01, 06, 00) giusto - (2005, 03, 14, 1, 6, 00).
endDate = new Date(2006, 12, 1, 0, 0, 00);
days = (endDate-currentDate)/1000/60/60/24;
daysRound = Math.floor(days);
hours = (endDate-currentDate)/1000/60/60-(24*daysRound);
hoursRound = Math.floor(hours);
minutes = (endDate-currentDate)/1000/60-(24*60*daysRound)-(60*hoursRound);
minutesRound = Math.floor(minutes);
seconds = (endDate-currentDate)/1000-(24*60*60*daysRound)-(60*60*hoursRound)-(60*minutesRound);
secondsRound = Math.round(seconds);
// DIFERENZIA TRA TOT GIORNI O TAL GIORNO.
if (daysRound == 1) {
dy = " Giorno e ";
} else {
dy = " Giorni e ";
}
if (secondsRound == 60) {
secondsRound = 0;
}
if (minutesRound == 60) {
minutesRound = 0;
}
if (secondsRound <= 9) {
secondsRound = "0"+secondsRound;
}
if (minutesRound <= 9) {
minutesRound = "0"+minutesRound;
}
if (secondsRound<=+10) {
timeRemaining = gotoAndPlay(3);
;
// Impostazione sequenza imput data nella variabile " timeRemaining ".
} else {
timeRemaining = daysRound+dy+hoursRound+":"+minutesRound+":"+secondsRound;
}
// design and programming by Joaquimgf
// netjoe@bluewin.ch
// http://web.ticino.com/netjoe

Risposte



Ciao Joaquimgf,
L'animazione parte ogni volta che i secondi sono inferiori a 10 senza controllare se anche i giorni, le ore e i minuti si sono esauriti....
Cancella questa parte di codice:
//-------------------------------------
if (secondsRound<=+10) {
timeRemaining = gotoAndPlay(3);
;
// Impostazione sequenza imput data nella variabile " timeRemaining ".
} else {
timeRemaining = daysRound+dy+hoursRound+":"+minutesRound+":"+secondsRound;
}
//------------------------------
E scrivi questo:
//---------------------------------
if (daysRound == hoursRound == minutesRound == 0) {
if (secondsRound<=+10) {
timeRemaining = gotoAndPlay(3);
}
}
timeRemaining = daysRound+dy+hoursRound+":"+minutesRound+":"+secondsRound;
//-----------------------------------
Così prima controlliamo che daysRound, hoursRound e minutesRound siano zero, successivamente controlliamo secondsRound.
Buon Capodanno!

Di: Professore | 26/09/2020 18:56:17


Ciao professore,
ti ringrazio per l'aiuto ma purtroppo non ci siamo ancora...
in parte il codice funziona, infatti allo scadere dei 10 sec. va al 3° frame, il problema e che fa lo stesso anche allo scadere del 1° min 1°ora 1° giorno o provato a impostare
//.............................................
(if (daysRound == hoursRound == minutesRound == -0) {
//.............................................
però in questo caso al scadere del tempo il timer va avanti partendo da -0.
Spero di essermi spiegato bene...
ti ringrazio per l'aiuto.

Di: Joaquimgf | 26/09/2020 18:56:17