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

Cuenta atrás en Flash

Estas en el tema de Cuenta atrás en Flash en el foro de Flash y Actionscript en Foros del Web. Buenas!! Tengo una duda que seguro ustedes me saben responder. Quiero saber cómo poner el típico contador en una presentación en Flash que diga: Quedan ...
  #1 (permalink)  
Antiguo 07/04/2006, 11:21
 
Fecha de Ingreso: agosto-2003
Ubicación: España - Madrid
Mensajes: 169
Antigüedad: 14 años, 3 meses
Puntos: 0
Cuenta atrás en Flash

Buenas!! Tengo una duda que seguro ustedes me saben responder. Quiero saber cómo poner el típico contador en una presentación en Flash que diga: Quedan 3 días!! y así, hasta el día x que yo ponga.
Como nota aclaratoria, decir que no quiero el contador que pone 1 hora, 10 minutos 10 segundos...no...uno que se actualice cada día y que ponga queda: 1 día, sin que tenga que actualizarlo yo.

Muchas gracias!!!
Saludos!!!
  #2 (permalink)  
Antiguo 07/04/2006, 14:54
Avatar de luistar  
Fecha de Ingreso: marzo-2005
Ubicación: Argentina
Mensajes: 939
Antigüedad: 12 años, 9 meses
Puntos: 0
en un nuevo documento crea un campo de texto dinámico y como nombre de instancia ponle: falta_txt

este código en el fotograma de _root

Código:
//aumenta un cero si es menor que 10 (ejemp: 5 será 05) 
var mascero:Function = function (n:Number):String{return n<10?'0'+n:n;} 

//fecha limite (año, mes, dia, hora, minuto, segundo
var fecha_limite:Date = new Date(2006,4,30,23,59,59);

//
this.onEnterFrame = function(){ 
	//la fecha_actual actual
	var fecha_actual:Date = new Date(); 

	//verificamos el tiempo faltante
	var falta:Number = (fecha_limite.getTime() - fecha_actual.getTime())/10; 
	
	if(falta > 0){ 
		//hacemos los cálculos
		var d:Number = Math.floor(falta/8640000); //dias
		var h:Number = Math.floor((falta%8640000)/360000); //horas
		var m:Number = Math.floor((falta%360000)/6000); //minutos
		var s:Number = Math.floor((falta%6000)/100); //segundos
		var cs:Number = Math.floor((falta%100)); //centésimas de segundo
		//lo mostramos en un campo de texto
		falta_txt.text = mascero(d)+'d : '+mascero(h)+'h : '+mascero(m)+'m : '+mascero(s)+'s : '+mascero(cs)+'cs'; 
	}else{ 
		//si ya no falta nada
		falta_txt.text = 'la fecha limite ya pasó'; 
		delete this.onEnterFrame; 
	} 
} 
stop();
te será fácil personalizarlo

:D
__________________
Si digo que soy mentiroso. ¿Lo soy?
  #3 (permalink)  
Antiguo 07/04/2006, 15:41
 
Fecha de Ingreso: agosto-2003
Ubicación: España - Madrid
Mensajes: 169
Antigüedad: 14 años, 3 meses
Puntos: 0
Y digo yo que...si en el código que me has pasado, ignoro los minutos segundo y tal, y quito las lineas de código que hacen referencia a esos datos, funcionará no??

A ver si ya puestos, podríais decirme como se pone lo mismo pero para una web normal (html), en html o en javascrip, o, si no fuera posible o si no existe, debería de ser en otro tipo de lenguaje...inevitablemente.

Muchas gracias!! Saludos!!!
  #4 (permalink)  
Antiguo 07/04/2006, 17:10
Avatar de luistar  
Fecha de Ingreso: marzo-2005
Ubicación: Argentina
Mensajes: 939
Antigüedad: 12 años, 9 meses
Puntos: 0
claro... basta con que quites lo que no vas a usar...
si quieres lo mismo en javascript creo que este no es la sección más indicada
:D
__________________
Si digo que soy mentiroso. ¿Lo soy?
  #5 (permalink)  
Antiguo 07/04/2006, 17:12
 
Fecha de Ingreso: agosto-2003
Ubicación: España - Madrid
Mensajes: 169
Antigüedad: 14 años, 3 meses
Puntos: 0
Weno joer...ya puestos lo escribi...a ver si tu sabrías algo...a<hora lo pondre en la seccion javascript...

Muchas gracias!! Saludos!!
  #6 (permalink)  
Antiguo 07/04/2006, 17:27
 
Fecha de Ingreso: agosto-2003
Ubicación: España - Madrid
Mensajes: 169
Antigüedad: 14 años, 3 meses
Puntos: 0
Weno, ya puestos te comento luistar...no me funciona, no sé exactamente por qué pero no me funciona. A ver, del código que me has pasado qué es exactamente lo que debo de modificar??

He creado un campo de texto llamado falta_txt y en el primer fotograma he metido las acciones...pegando tu código y sin modificarlo no me sale nada...

Cual puede ser el fallo que se ma pasao?? Seguro q es algun despiste o algo así...

Muchas gracias!!
Saludos!!
  #7 (permalink)  
Antiguo 07/04/2006, 18:04
Avatar de luistar  
Fecha de Ingreso: marzo-2005
Ubicación: Argentina
Mensajes: 939
Antigüedad: 12 años, 9 meses
Puntos: 0
sip... debe ser un despiste o algo...

.......
falta_txt.text = mascero(d)+'d : '+mascero(h)+'h : '+mascer.....

esa es la cadena de salida, es lo que tienes que modificar
si por ejemplo sólo quieres los dias que faltan

falta_txt.text = mascero(d)+'dias faltantes';

y las variables h, m, s, cs ya no serían necesario y puedes eliminarlas o dejarlas

aquí te paso el ejemplo... te darás cuenta

:D
__________________
Si digo que soy mentiroso. ¿Lo soy?
  #8 (permalink)  
Antiguo 17/09/2006, 20:08
Avatar de trillofer1986  
Fecha de Ingreso: junio-2006
Mensajes: 26
Antigüedad: 11 años, 6 meses
Puntos: 0
No me funciona

Gente,

Utilice el ejemplo que acaban de dar, pero no se porq SIEMPRE tiene 30 dias de más
Cita:
//aumenta un cero si es menor que 10 (ejemp: 5 será 05)
var mascero:Function = function (n:Number):String{return n<10?'0'+n:n;}

//fecha limite (año, mes, dia, hora, minuto, segundo
var fecha_limite:Date = new Date(2006,9,30,23,59,59);

//
this.onEnterFrame = function(){
//la fecha_actual actual
var fecha_actual:Date = new Date();

//verificamos el tiempo faltante
var falta:Number = (fecha_limite.getTime() - fecha_actual.getTime())/10;

if(falta > 0){
//hacemos los cálculos
var d:Number = Math.floor(falta/8640000); //dias
var h:Number = Math.floor((falta%8640000)/360000); //horas
var m:Number = Math.floor((falta%360000)/6000); //minutos
var s:Number = Math.floor((falta%6000)/100); //segundos
var cs:Number = Math.floor((falta%100)); //centésimas de segundo
//lo mostramos en un campo de texto
falta_txt.text = mascero(d)+'d : '+mascero(h)+'h : '+mascero(m)+'m : '+mascero(s)+'s : '+mascero(cs)+'cs';
}else{
//si ya no falta nada
falta_txt.text = 'la fecha limite ya pasó';
delete this.onEnterFrame;
}
}
stop();
Alguien me puede ayudar???

Por favor, lo necesito para una página. Si quieren fijense con ese mismo ejemplo que esta en el post anterior. Pasa lo mismo :(:(

Espero sus respuestas.


GRACIAS!!!!
  #9 (permalink)  
Antiguo 26/10/2006, 11:05
 
Fecha de Ingreso: julio-2004
Mensajes: 33
Antigüedad: 13 años, 5 meses
Puntos: 0
con fecha en archivo txt

A ver quién es el titán que ahora lo tunea para quela fecha se la demos a través de un txt. Porque a mí no me ha salido...

Y seguro que debe ser muy fácil, pero he estado una hora y nada. Me parece que se me da mejor programar el finde que el actionscript.
  #10 (permalink)  
Antiguo 09/04/2007, 13:05
Avatar de alan9_velez  
Fecha de Ingreso: abril-2007
Ubicación: Buenos Aires (arg) - Cap.
Mensajes: 12
Antigüedad: 10 años, 8 meses
Puntos: 0
Re: No me funciona

Hola gente a mi me pasa lo mismo que a trillofer1986, el countdown me da 30 dias de mas o sea yo necesito que el dia 01/01/2010 finalize, pero hize la prueba y finaliza el dia 01/02/2010, porque puede ser que suceda esto? gracias
  #11 (permalink)  
Antiguo 09/04/2007, 20:36
Avatar de luistar  
Fecha de Ingreso: marzo-2005
Ubicación: Argentina
Mensajes: 939
Antigüedad: 12 años, 9 meses
Puntos: 0
Re: cuenta regresiva (CountDown)

Hola
has de tener en cuenta que los meses se cuentan de 0 (enero) a 11 (diciembre)
por ejemplo para la fecha: 01/01/2010
sería: Date(2009,11,31,23,59,59);

Cita:
Iniciado por promotore
A ver quién es el titán que ahora lo tunea para quela fecha se la demos a través de un txt. Porque a mí no me ha salido...

Y seguro que debe ser muy fácil, pero he estado una hora y nada. Me parece que se me da mejor programar el finde que el actionscript.
Siento responder tarde, ya no frecuento el foro, pero para quien lo necesite:

Código:
//aumenta un cero si es menor que 10 (ejemp: 5 será 05) 
var mascero:Function = function (n:Number):String{return n<10?'0'+n:n;} 

var fecha_limite:Date;

//para cargar la fecha de un archivo externo
var fecha_limite_lv:LoadVars = new LoadVars();
fecha_limite_lv.onLoad = function(ok:Boolean){
	if(ok){
		//actualizamos la fecha limite (año, mes 0-11, dia, hora 0-23, minuto 0-59, segundo 0-59)
		fecha_limite = new Date(this.anio,this.mes,this.dia,this.hora,this.minuto,this.segundo);
		//hacemos andar  el contador
		_root.onEnterFrame = cuentaAtras;
	}
}

//
var cuentaAtras:Function = function(){ 
	//la fecha_actual actual
	var fecha_actual:Date = new Date(); 

	//verificamos el tiempo faltante
	var falta:Number = (fecha_limite.getTime() - fecha_actual.getTime())/10; 
	
	if(falta > 0){ 
		//hacemos los cálculos
		var d:Number = Math.floor(falta/8640000); //dias
		var h:Number = Math.floor((falta%8640000)/360000); //horas
		var m:Number = Math.floor((falta%360000)/6000); //minutos
		var s:Number = Math.floor((falta%6000)/100); //segundos
		var cs:Number = Math.floor((falta%100)); //centésimas de segundo
		//lo mostramos en un campo de texto
		falta_txt.text = mascero(d)+'d : '+mascero(h)+'h : '+mascero(m)+'m : '+mascero(s)+'s : '+mascero(cs)+'cs'; 
	}else{ 
		//si ya no falta nada
		falta_txt.text = 'la fecha limite ya pasó'; 
		delete this.onEnterFrame; 
	} 
} 

//cargamos la fecha del archivo externo
fecha_limite_lv.load('fecha_limite.txt');

stop();
en el archivo fecha_limite.txt defines las valores
por ejemplo para la fecha: 01/01/2010
Código:
&anio=2009&mes=11&dia=31&hora=23&minuto=59&segundo=59
__________________
Si digo que soy mentiroso. ¿Lo soy?
  #12 (permalink)  
Antiguo 01/06/2007, 15:21
 
Fecha de Ingreso: junio-2007
Mensajes: 23
Antigüedad: 10 años, 6 meses
Puntos: 0
Pregunta Re: Cuenta atrás en Flash

genial script...

1) pero coge la hora que tenga cada uno en su ordenador, he leido en otros foros que para que lo coja del servidor hace falta un archivo php con este código:
Código:
<?php
echo "time=" . time();
?>
¿¿podria alguien adaptar el script de luistar, para que tome la hora del servidor??

2) al terminar la cuenta atrás sale la frase "la fecha limite ya pasó" en donde estaban los números, en lugar de esto podrian quedarse los números a cero y salir la frase debajo del contador y que al actualizar la página salgan una serie de frases diferentes aleatorias. como:
Cita:
la fecha limite ya pasó
lo siento, llegaste tarde
otro añito será
etc

saludos y muchas gracias, es mi primer post..

Última edición por antuan80; 14/06/2007 a las 06:24
  #13 (permalink)  
Antiguo 02/06/2007, 15:17
Avatar de luistar  
Fecha de Ingreso: marzo-2005
Ubicación: Argentina
Mensajes: 939
Antigüedad: 12 años, 9 meses
Puntos: 0
Re: Cuenta atrás en Flash

ola antuan80

1. Puedes generar la fehca_limite de muchas maneras, una de ellas es cogiendo cada dato (año,mes,dia,hora,minuto,segundo) como en el ejemplo anterior que puse, o puede cargarse la fecha en el formato que pones (llamado Epoch Unix -> time() ), que es la cantidad de segundos desde el 1 de enero de 1970, flash también trabaja con ese formato, sería cuestión de adaptarlo.

Para generar la fecha límite desde PHP en el formato que propongo en el ejemplo anterior podemos usar la función date() y sería asi: fecha_limite.php
Código PHP:
<?php
echo '&anio='.date('Y').'&mes='.date('n').'&dia='.date('j').'&hora='.date('G').'&minuto='.date('i').'&segundo='.date('s');
?>
2. Si quieres que en vez de el texto aparezca ceros, sólo reemplázalo. Para que aparezca un texto aleatorio, creas un campo de texto (llamado ejem. mensaje_txt) y en el cargamos un texto aleatorio tomándolo de un array que contiene los posibles textos:
Código:
//array con los mensajes que se tomarán aleatoriamente
var mensajes:Array = new Array('la fecha limite ya pasó','lo siento, llegaste tarde','otro añito será','etc');
modificamos el código del ejemplo anterior
Código:
	//si ya no falta nada MOSTRAMOS CEROS
	falta_txt.text = '0:0:0:0:0';
	//texto aleatorio
	mensaje_txt.text = mensajes[Math.floor(Math.random()*mensajes.length)];
	delete this.onEnterFrame;
Otro asunto a tomar en consideración, es que cuando cargues los datos de fecha_limite.php deberías evitar que se cargue del cache del usuario y en vez de ello se cargue del servidor para tener simpre datos actualizador; para ello una de las formas es agregarle una variable aleatoria a la url, algo así:

modificando el codigo del ejemplo anterior
Código:
//cargamos la fecha del archivo externo AGREANDO UNA VARIABLE ALEATORIA PARA EVITAR EL CACHE
fecha_limite_lv.load('fecha_limite.php?'+Math.random());

stop();
PD. no he probado el código que pongo, así que puede que haya errores en la sintaxis, u otros :P, pero la idea es esa :D
__________________
Si digo que soy mentiroso. ¿Lo soy?
  #14 (permalink)  
Antiguo 14/06/2007, 06:25
 
Fecha de Ingreso: junio-2007
Mensajes: 23
Antigüedad: 10 años, 6 meses
Puntos: 0
Re: Cuenta atrás en Flash

muchas gracias luistar el contador aparece con ceros cuando finaliza y las frases aleatorias funcionan tambien genial.
Pero todavia coge la hora del pc y no la del servidor. Es decir si cambio la hora de mi pc, la cuenta atrás del contador tambien cambia, por esto seria mucho mejor para los que tenemos usuarios en el extranjero y por tanto con diferente desfase horario que el contador tomara la hora del servidor y no del pc.

Por desgracia yo no soy experto en todo esto y no sabria como cogerlo desde cero.

Espero que alguien pueda adaptar el magnifico último código de luistar para que coga la hora del servidor¿? saludos y gracias.

Última edición por antuan80; 14/06/2007 a las 06:41
  #15 (permalink)  
Antiguo 14/06/2007, 06:34
 
Fecha de Ingreso: junio-2007
Mensajes: 23
Antigüedad: 10 años, 6 meses
Puntos: 0
Re: Cuenta atrás en Flash

perdón cite mi último tema sin querer del que espero puedan prestar atención, en realidad queria editarlo. borren este mismo post. Lo siento, no tengo permisos para hacerlo yo mismo y por eso lo edito con mis disculpas. saludos.
  #16 (permalink)  
Antiguo 18/07/2007, 10:26
 
Fecha de Ingreso: junio-2007
Mensajes: 23
Antigüedad: 10 años, 6 meses
Puntos: 0
Re: Cuenta atrás en Flash

Cita:
Iniciado por luistar Ver Mensaje
1. Puedes generar la fehca_limite de muchas maneras, una de ellas es cogiendo cada dato (año,mes,dia,hora,minuto,segundo) como en el ejemplo anterior que puse, o puede cargarse la fecha en el formato que pones (llamado Epoch Unix -> time() ), que es la cantidad de segundos desde el 1 de enero de 1970, flash también trabaja con ese formato, sería cuestión de adaptarlo.
viendo que soy un negado para ello,
¿¿alguien puede adaptar entonces el último código de luistar para que carge la fecha en el formato Epoch Unix y así tenga en cuenta la fecha del servidor y no del pc del usuario??

saludos.
  #17 (permalink)  
Antiguo 07/11/2007, 19:17
 
Fecha de Ingreso: noviembre-2007
Mensajes: 8
Antigüedad: 10 años, 1 mes
Puntos: 0
Re: Cuenta atrás en Flash

Lo que yo encontré en este código es una diferencia de 30 días en el cálculo de la variable d (dia). Lo arreglé restando está diferencia.
NOTA: No sé como se comportará cuando entra en juego una diferencia de meses, ya que ahí entran en juego meses de 31 días. Pero en teoría no debería afectar.
A mi me sirvió con esto ya que la cuenta atrás que necesitaba estaba dentro del mismo mes.


Código:
//aumenta un cero si es menor que 10 (ejemp: 5 será 05) 
var mascero:Function = function (n:Number):String{return n<10?'0'+n:n;} 

//fecha limite (año, mes, dia, hora, minuto, segundo
var fecha_limite:Date = new Date(2006,4,30,23,59,59);

//
this.onEnterFrame = function(){ 
	//la fecha_actual actual
	var fecha_actual:Date = new Date(); 

	//verificamos el tiempo faltante
	var falta:Number = (fecha_limite.getTime() - fecha_actual.getTime())/10; 
	
	if(falta > 0){ 
		//hacemos los cálculos
		var d:Number = Math.floor(falta/8640000)-30; //ATENCIÓN AL CÁLCULO DE LOS DÍAS
		var h:Number = Math.floor((falta%8640000)/360000); //horas
		var m:Number = Math.floor((falta%360000)/6000); //minutos
		var s:Number = Math.floor((falta%6000)/100); //segundos
		var cs:Number = Math.floor((falta%100)); //centésimas de segundo
		//lo mostramos en un campo de texto
		falta_txt.text = mascero(d)+'d : '+mascero(h)+'h : '+mascero(m)+'m : '+mascero(s)+'s : '+mascero(cs)+'cs'; 
	}else{ 
		//si ya no falta nada
		falta_txt.text = 'la fecha limite ya pasó'; 
		delete this.onEnterFrame; 
	} 
} 
stop();
  #18 (permalink)  
Antiguo 11/01/2009, 19:09
 
Fecha de Ingreso: enero-2009
Mensajes: 2
Antigüedad: 8 años, 11 meses
Puntos: 0
Respuesta: Cuenta atrás en Flash

Hola a todos.

Les visito por primera vez buscando una ayuda desde Google sobre un cuenta atrás en Flash y éste me ha servido a la primera (sólo he realizado unos mínimos cambios de color etc, etc) pero ahora me gustaría saber una cosilla, a ver si me dan una mano.

El resultado se vé así:

29d : 21h : 22m : 10s : 14ms


Y me gustaría que quedase sólo así:

29 : 21 : 22 : 10 : 14

Y mejor aún si logro eliminar los milisegundos:

29 : 21 : 22 : 10

El problema que encuentro es que no sé lo que debo cambiar del código de luistar ya que estoy empezando en el mundo Flash con Adobe Flash CS4 Professional.
Cualquier cosa que toco del código ya no funciona (película en blanco) ó aparece el mensaje de "undefinited" (ó algo así).
Estoy usando el código en Flash CS4 para MAC y la configuración es ActionScript 1.0 & 2.0

Alguna ayudita...?

Por favor recuerden que son mis primeros tiros en Flash (sólo 2 días), por lo que hay muchísimas cosas que no pillo...

Muchas gracias a todos.
Un saludo.

  #19 (permalink)  
Antiguo 11/01/2009, 19:57
Avatar de Lynxcraft  
Fecha de Ingreso: noviembre-2007
Ubicación: yecla murcia
Mensajes: 1.346
Antigüedad: 10 años
Puntos: 51
Respuesta: Cuenta atrás en Flash

Código PHP:
//aumenta un cero si es menor que 10 (ejemp: 5 será 05) 
var mascero:Function = function (n:Number):String{return n<10?'0'+n:n;} 

//fecha limite (año, mes, dia, hora, minuto, segundo
var fecha_limite:Date = new Date(2009,4,30,23,59,59);

//
this.onEnterFrame = function(){ 
    
//la fecha_actual actual
    
var fecha_actual:Date = new Date(); 

    
//verificamos el tiempo faltante
    
var falta:Number = (fecha_limite.getTime() - fecha_actual.getTime())/10
    
    if(
falta 0){ 
        
//hacemos los cálculos
        
var d:Number Math.floor(falta/8640000); //dias
        
var h:Number Math.floor((falta%8640000)/360000); //horas
        
var m:Number Math.floor((falta%360000)/6000); //minutos
        
var s:Number Math.floor((falta%6000)/100); //segundos
        //lo mostramos en un campo de texto
        
falta_txt.text mascero(d)+' : '+mascero(h)+' : '+mascero(m)+' : '+mascero(s); 
    }else{ 
        
//si ya no falta nada
        
falta_txt.text 'la fecha limite ya pasó'
        
delete this.onEnterFrame
    } 

stop(); 
__________________
Sobran las ideas cuando faltan ganas de trabajar en ellas
Lynxcraft
  #20 (permalink)  
Antiguo 11/01/2009, 22:23
 
Fecha de Ingreso: enero-2009
Mensajes: 2
Antigüedad: 8 años, 11 meses
Puntos: 0
Respuesta: Cuenta atrás en Flash

Hola Lynxcraft,
Gracias por la ayuda. Me funciona perfecto.



De grande quiero ser como tú...

  #21 (permalink)  
Antiguo 09/02/2009, 10:40
 
Fecha de Ingreso: septiembre-2008
Ubicación: España
Mensajes: 230
Antigüedad: 9 años, 3 meses
Puntos: 0
Respuesta: Cuenta atrás en Flash

Hola ¡
ESTA SOLUCIONADO

Última edición por designermaster; 09/02/2009 a las 10:55
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

SíEste tema le ha gustado a 4 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 05:52.