08/10/2007, 15:25
|
| | | Fecha de Ingreso: octubre-2007 Ubicación: Barcelona, España
Mensajes: 551
Antigüedad: 17 años, 1 mes Puntos: 5 | |
Re: Reloj contador.... Como prometido...me ha costado pero aca esta. (se hace un poco largo por los comentarios) =)
Código:
//Creo un textField para mostrar lo que falta hasta "el dia del juicio"...
this.createTextField("tf", 0, 100, 100, 400, 100);
var tf:TextField = this["tf"];
//Para que sea mas comprensible.
//Creo un objeto con los datos, año, mes, dia.
var elDiaFinal:Object = new Object();
elDiaFinal["anio"] = 2008;
elDiaFinal["mes"] = 7; //ActionScript empieza a contar los meses en este modo Enero = 0, Febrero = 1....
elDiaFinal["dia"] = 14;
elDiaFinal["hora"] = 18;
elDiaFinal["minutos"] = 22;
elDiaFinal["segundos"] = 34;
//¿Qué fecha es hoy?
var now:Date = new Date();
//¿Cuando es el dia final?
var stopDate:Date = new Date(elDiaFinal["anio"], elDiaFinal["mes"], elDiaFinal["dia"], elDiaFinal["hora"], elDiaFinal["minutos"], elDiaFinal["segundos"]);
//Cada 1 segundo actualizo los datos llamando la funcion "calculateTime"
var interval:Number = setInterval(calculateTime, 1000);
function calculateTime()
{
//Cada vez que calculo el tiempo creo un nueva fecha, o sea actualizada
//para poder ir haciendo el calculo "ahora" - "lo que falta"
now = new Date();
var rest:Date = new Date(stopDate.getTime() - now.getTime()); //Creo una nueva fecha con "el resto del tiempo"
//Le resto siempre un dia porque para AS 1 dia quiere decir = el mismo dia...o sea 0
var dias:Number = (rest.getDate() > 0) ? (rest.getDate()-1) : 0;
var anios:Number = stopDate.getFullYear() - now.getFullYear(); //Calculo la cantidad de años que faltan
//Creo una String con el texto a visualizar, haciendo algunas comprobaciones...
//Si es plural agrego una "N" o una "S" segun el caso.
//Si el numero tiene solo un digito lo convierto en 2, por ej. "2" en "02"
var strFalta:String = "FALTA";
strFalta += (anios != 1 ? "N " : " ") + anios + " AÑO" + isPlural(anios);
strFalta += dias + " DIA" + (dias != 1 ? "S " : " ");
strFalta += convertirDosDigitos(rest.getHours()) + " HORA" + isPlural(rest.getHours());
strFalta += convertirDosDigitos(rest.getMinutes()) + " MINUTO" + isPlural(rest.getMinutes());
strFalta += " Y " + convertirDosDigitos(rest.getSeconds()) + " SEGUNDO" + isPlural(rest.getSeconds());
//Visualizo el texto
tf.text = strFalta;
//Si la fecha "ahora" es igual al "dia final" elimino el contador
if(now.getTime() >= stopDate.getTime()) clearInterval(interval);
}
function convertirDosDigitos(num:Number):String
{
//Compruebo si el numero tiene uno o dos digitos
//Si tiene uno le agrego un "0"
if(String(num).length == 1)
return ("0" + String(num));
return String(num);
}
function isPlural(num:Number):String
{
//Si el numero pasado es mayor a uno quiere decir
//que el adjetivo sera pural, por lo tanto le agrego una "S"
if(num > 1) return "S ";
return " ";
}
|