Ver Mensaje Individual
  #8 (permalink)  
Antiguo 08/10/2007, 15:25
Avatar de SinguerInc
SinguerInc
 
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 " ";
}