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;
}
}