Foros del Web » Creando para Internet » Flash y Actionscript »

Reloj contador....

Estas en el tema de Reloj contador.... en el foro de Flash y Actionscript en Foros del Web. Alguien tiene un ejemplo de como hacer un reloj countdown.... quiero ingresar una fecha y me ponga un reloj contando lo que falta hasta la ...
  #1 (permalink)  
Antiguo 08/10/2007, 08:45
Avatar de mdavila  
Fecha de Ingreso: julio-2007
Ubicación: Montevideo (Uruguay)
Mensajes: 919
Antigüedad: 17 años, 3 meses
Puntos: 13
Reloj contador....

Alguien tiene un ejemplo de como hacer un reloj countdown....
quiero ingresar una fecha y me ponga un reloj contando lo que falta hasta la fecha ingresada.

gracias y saludos
  #2 (permalink)  
Antiguo 08/10/2007, 09:10
Avatar de 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....

Algo asi?, esto solo funciona con un tiempo menor a 1 dia, obviamente se puede hacer mas complicado
Código:
var now:Date = new Date();
var stopDate:Date = new Date(now.getFullYear(), now.getMonth(), now.getDate(), now.getHours(), now.getMinutes()+5);
var interval:Number = setInterval(calculateTime, 1000);
function calculateTime()
{
	now = new Date();
	var rest:Date = new Date(stopDate.getTime() - now.getTime());
	trace(rest.getHours() + ":" + rest.getMinutes() + ":" + rest.getSeconds());
	if(now.getTime() >= stopDate.getTime()) clearInterval(interval);
}
  #3 (permalink)  
Antiguo 08/10/2007, 09:15
Avatar de mdavila  
Fecha de Ingreso: julio-2007
Ubicación: Montevideo (Uruguay)
Mensajes: 919
Antigüedad: 17 años, 3 meses
Puntos: 13
Re: Reloj contador....

ejecuto esto y el trace me tira :: solamente :(
  #4 (permalink)  
Antiguo 08/10/2007, 09:35
Avatar de Bandit
Moderador
 
Fecha de Ingreso: julio-2003
Ubicación: Lima - Perú
Mensajes: 16.726
Antigüedad: 21 años, 4 meses
Puntos: 406
Re: Reloj contador....

Hola mdavila:
El código está bien si quieres verlo en el escenario coloca un campo de texto dinámico con var now.

Espero haberte sido de ayuda.
__________________
Bandit.
Si no sabes estudia y si sabes enseña.
http://www.banditwebdesign.com/
  #5 (permalink)  
Antiguo 08/10/2007, 09:40
Avatar de mdavila  
Fecha de Ingreso: julio-2007
Ubicación: Montevideo (Uruguay)
Mensajes: 919
Antigüedad: 17 años, 3 meses
Puntos: 13
Re: Reloj contador....

Les muestro lo que tengo y el problema esta que las horas me da papa fritas jejeje



F_final = new Date();

F_final.setYear(2007);
F_final.setDate(8);
F_final.setMonth(9);
F_final.setHours(15);
F_final.setMinutes(0);
F_final.setSeconds(0);
F_final.setMilliseconds(0);

objeto_fecha = new Date();
horas = "";
horas = objeto_fecha.getHours();
horas = horas + 2;



if (horas < 10)
{
horas = "0" + horas;
} // end if
minutos = objeto_fecha.getMinutes();
minutos_digito = "";
if (minutos < 10)
{
minutos_digito = "0";
} // end if
minutos_digito = minutos_digito + objeto_fecha.getMinutes();
segundos = objeto_fecha.getSeconds();
segundos_digito = "";
if (segundos < 10)
{
segundos_digito = "0";
} // end if
segundos_digito = segundos_digito + objeto_fecha.getSeconds();
Fecha = new Date();
F_actual = Fecha.getTime();
F_final = Math.floor(F_final / 86400000);
F_actual = Math.floor(F_actual / 86400000);
D_faltan = F_final - F_actual;
objetivo_segundos = 60 - segundos_digito;
if (objetivo_segundos < 10)
{
objetivo_segundos = "0" + objetivo_segundos;
} // end if
if (objetivo_segundos == "60")
{
objetivo_segundos = "00";
--minutos_digito;
} // end if
objetivo_minutos = 59 - minutos_digito;
if (objetivo_minutos < 10)
{
objetivo_minutos = "0" + objetivo_minutos;
} // end if
if (objetivo_minutos > 59)
{
objetivo_minutos = "00";
--horas;
} // end if

objetivo_horas = 23 - horas;

if (objetivo_horas < 10)
{
objetivo_horas = "0" + objetivo_horas;
} // end if
if (objetivo_horas == "0-1")
{
objetivo_horas = "23";
--D_faltan;
} // end if
if (objetivo_horas == "0-2")
{
objetivo_horas = "22";
--D_faltan;
} // end if


if (D_faltan < 10)
{
D_faltan2 = "00" add D_faltan;
}
else if (D_faltan < 100)
{
D_faltan2 = "0" add D_faltan;
}
else
{
D_faltan2 = String(D_faltan);
} // end else if
if (mbsubstring(D_faltan, 1, 2) == "0-")
{
contador.text = "El día ha llegado";
segundos_.text = "";
minutos_.text = "";
horas_.text = "";
dias_.text = "";
}
else
{
contador.text = "FALTAN DIAS HORAS MINUTOS SEGUNDOS";
segundos_.text = objetivo_segundos;
minutos_.text = objetivo_minutos;
horas_.text = objetivo_horas;
dias_.text = D_faltan;
trace(horas_.text);
} // end else if
  #6 (permalink)  
Antiguo 08/10/2007, 10:20
Avatar de 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....

mmm....ese codigo esta muy "sucio" y es un ejemplo viejisimo, todavia dice "add" que no se usa mas desde la version AS1, hay como 70 lineas que las puedes resolver en una funcion. Apenas llego a casa te mando como hacerlo. Ciao!.
  #7 (permalink)  
Antiguo 08/10/2007, 10:23
Avatar de mdavila  
Fecha de Ingreso: julio-2007
Ubicación: Montevideo (Uruguay)
Mensajes: 919
Antigüedad: 17 años, 3 meses
Puntos: 13
Re: Reloj contador....

Dale gracias..., es que no le pego mucho al action script, jejej.

Saludos.
  #8 (permalink)  
Antiguo 08/10/2007, 15:25
Avatar de 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 " ";
}
  #9 (permalink)  
Antiguo 09/10/2007, 08:51
Avatar de mdavila  
Fecha de Ingreso: julio-2007
Ubicación: Montevideo (Uruguay)
Mensajes: 919
Antigüedad: 17 años, 3 meses
Puntos: 13
Re: Reloj contador....

Impecable, muchas gracias por tu tiempo, cuando alguien es buena gente se nota.

Saludos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:25.