Ver Mensaje Individual
  #17 (permalink)  
Antiguo 07/11/2007, 19:17
Unaided
 
Fecha de Ingreso: noviembre-2007
Mensajes: 8
Antigüedad: 17 años
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();