Comunidad de diseño web y desarrollo en internet online

Setinterval y function

Citar            
MensajeEscrito el 26 May 2009 05:35 pm
tengo esta función de cuenta regresiva.. lo que no puedo lograr es que al llegar a cero (time)
pueda volver a restablecer cuenta en 10 con un botón o lo q sea.. para volver a tener la cuenta regresiva desde 10 o el numero que se le asigne a cuenta.

Código :

function updateTimer():Void {
   var cuenta:Number = 10;
   var time:Number = cuenta-Math.floor(getTimer()/1000);
   timer_txt.html = true;
   if (time>0) {
      timer_txt.htmlText = "<br>"+time;
   } else {
      timer_txt.htmlText = "Se te ha terminado el tiempo<br><b>¡Perdiste!</b>";
   }
}


var intervalID:Number = setInterval(updateTimer, 100);

Por Freeki

Claber

183 de clabLevel



Genero:Masculino  

Desarrollador Web Uy

firefox
Citar            
MensajeEscrito el 27 May 2009 07:05 am
Bueno, hay alguna cosilla en tu código que no me acaba de cuadrar:
- Si creas un intervalo con setInterval, al acabar de usarlo tienes que eliminarlo siempre, porque si no lo eliminas seguirá repitiéndose indefinidamente.
- El refresco del texto es cada segundo, y tú estas llamando a la función updateTimer cada 100ms. Luego 9 de cada 10 llamadas del interval a la función no hacen nada.
- No te hace falta usar la variable time, porque ya tienes la variable contador que guarda un número entero que representa el tiempo que queda (vamos, lo que quieres que muestre el textField).

Yo lo dejaría más o menos así:

Código :

var cuenta:Number;
var intervalID:Number;
timer_txt.html = true;

boton.onPress = function():Void {
   clearInterval(intervalID);
   cuenta = 10;
   timer_txt.htmlText = "<br>" + cuenta;
   intervalID = setInterval(updateTimer, 1000);
}

function updateTimer():Void {
   cuenta--;
   var time:Number = cuenta-Math.floor(getTimer()/1000);
   if (cuenta == 0) {
      timer_txt.htmlText = "Se te ha terminado el tiempo<br><b>¡Perdiste!</b>";
      clearInterval(intervalID);
   } else {
      timer_txt.htmlText = "<br>" + cuenta;
   }
}

Por isidoro

Claber

498 de clabLevel

2 tutoriales

Genero:Masculino  

firefox
Citar            
MensajeEscrito el 29 May 2009 05:57 pm
Hola isi.. necesito buscar otra forma.algo con getTimer supongo.. pq tengo que hacer que timer_txt.htmlText no muestre el valor de cuenta.. sino una cuenta en el formato de mm:ss... alguna idea de como usar el getTimer para eso?

Por Freeki

Claber

183 de clabLevel



Genero:Masculino  

Desarrollador Web Uy

firefox
Citar            
MensajeEscrito el 29 May 2009 08:32 pm
Pues así a bote pronto se me ocurre:

var minutos:Number = Math.floor(cuenta / 60);
var segundos:Number = cuenta % 60;
var texto:String = minutos + ":" + segundos;

Por isidoro

Claber

498 de clabLevel

2 tutoriales

Genero:Masculino  

firefox
Citar            
MensajeEscrito el 01 Jun 2009 02:04 pm
Gracias de vuelta isi.. lo haces parecer tan facil! :lol: lo vicho gracias :)

Por Freeki

Claber

183 de clabLevel



Genero:Masculino  

Desarrollador Web Uy

firefox
Citar            
MensajeEscrito el 01 Jun 2009 02:43 pm
Me alegro de que te haya sido útil, y de que hayas retomado este tema, porque ahora que me doy cuenta, en el código que puse sobra la línea:
var time:Number = cuenta-Math.floor(getTimer()/1000);
Me basé en lo que pusiste tú en el primer mensaje y se me olvidó borrarlo.
Y esto me lleva a una pregunta que puede parecer tonta, pero que llevo días intentando responder:
¿Cómo puedo editar los mensajes que he posteado en este foro?
Por más que he buscado no he encontrado ningún botón para poderlo hacer.

Por isidoro

Claber

498 de clabLevel

2 tutoriales

Genero:Masculino  

firefox
Citar            
MensajeEscrito el 01 Jun 2009 07:23 pm
A.. si, no pasa nada.. mmm x lo que sé.. no se pueden modificar los mensajes.. ya que una vez enviados se almacenan en el servidor y solo los administradores tienen acceso a él.. pero no estoy seguro la verdad, preguntale a freddy. ;)

Por Freeki

Claber

183 de clabLevel



Genero:Masculino  

Desarrollador Web Uy

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.