Comunidad de diseño web y desarrollo en internet online

Ayuda para mostrar decimas de segundo en contador de tiempo

Citar            
MensajeEscrito el 18 Oct 2011 09:54 pm
Hola Gente, ke onda, oigan miren estoy haciendo una aplicacion en action script 3.0, lo que necesito hacer es mostrar un contador de tiempo en una caja de texto, los minutos y los segundos si me los muestra, pero las decimas de segundo no avanzan, en lugar de eso me muestra una cantidad muy grande, y keria ver a ver si me podian ayudar,

Esto es lo que muestra
01:05:4294

aki esta el codigo por si lo kieren checar

private function cambiaTiempo(evento:TimerEvent):void{
segundos ++;

var segundosAgrega:uint = segundos;


var minutos:uint = Math.floor(segundosAgrega/60);
var decimas:uint = segundosAgrega;
//decimas = decimas - segundosAgrega*10 - minutos*600;

var _segundos:uint = segundosAgrega - minutos*60;


Globales.__root.crono.text = Tools.ponDobleCero(minutos) + ":" + Tools.ponDobleCero(_segundos) + ":" + Tools.ponDobleCero(decimas);
}

Por Nexus7

3 de clabLevel



 

msie
Citar            
MensajeEscrito el 19 Oct 2011 12:46 am
hola man,,, pasate x este link,, creo q t sera de ayuda

Por exekiel21

Claber

164 de clabLevel



Genero:Masculino  

programador

firefox
Citar            
MensajeEscrito el 19 Oct 2011 02:31 pm
Hola de nuevo, muchas gracias por el enlace pero lo ke necesito no es un countdown, sino un contador normal

Por Nexus7

3 de clabLevel



 

msie
Citar            
MensajeEscrito el 19 Oct 2011 02:57 pm
Es cierto,,, perdona,, es q una vez lo vi y crei q contaba milisegundos tambien,,, pero ahora veo q no. Bueno aca te paso un codigo para contar en milisegundos. Avisame si t sirvio:

Código ActionScript :

import flash.events.TimerEvent;
import flash.utils.Timer;
/**********************************
By Exekiel
***********************************/
var mili:uint = 0;
var initTimer:uint;

var timer:Timer = new Timer(1, 0);
var played:Boolean = true;

timer.addEventListener(TimerEvent.TIMER, handlerShowTime);

initTimer = getTimer();
timer.start();

function handlerShowTime(e:TimerEvent):void
{   
   mili = getTimer() - initTimer;   
   
   if (mili >= 99)
   {
      initTimer = getTimer();
      mili = 99;
   }
   
   txtMili.text = String(mili);
} /**/

Por exekiel21

Claber

164 de clabLevel



Genero:Masculino  

programador

firefox
Citar            
MensajeEscrito el 19 Oct 2011 03:12 pm
muchas gracias por tu ayuda, pero me marca un error, me muestra esto:

Llamada a un metodo getTimer() posiblemente no definido

Por Nexus7

3 de clabLevel



 

msie
Citar            
MensajeEscrito el 19 Oct 2011 03:14 pm
Si,, xq falto declarar esto:
import flash.utils.getTimer;

Por exekiel21

Claber

164 de clabLevel



Genero:Masculino  

programador

firefox
Citar            
MensajeEscrito el 19 Oct 2011 03:49 pm
Ok muchas gracias ya no me marco el error, pero mira, implemente tu codigo, y si me cambia los segundos y los minutos pero en las decimas solo me muestra un 99, esta la forma como me quedó, que estaré haciendo mal.

aki esta mi codigo ya modificado:

public var timer:Timer;
private var segundos:int;
private var mili:uint = 0;
private var initTimer:uint;


//funcion que lanza la aplicacion
private function lanzaFase():void{
//declaracion de instancia de la clase timer
timer = new Timer(1000,0);

//Manejador de eventos para el tiempo
timer.addEventListener(TimerEvent.TIMER, handlerShowTime);
initTimer = getTimer();
timer.start();
}

//funcion para realizar el conteo de tiempo
private function handlerShowTime(evento:TimerEvent):void{

//variable contador para aumentar los segundos en 1
segundos ++;

//variable para obtener los segundos
var segundosAgrega:uint = segundos;

//variable para obtener los minutos
var minutos:uint = Math.floor(segundosAgrega/60);

//variable para obtener los segundos actuales
var _segundos:uint = segundosAgrega - minutos*60;

//proceso para obtener las decimas de segundos
mili = getTimer() - initTimer;

if (mili >= 99) {
initTimer = getTimer();
mili = 99;
}

//Caja de texto donde se muestra el contador con minutos segundos y decimas

Globales.__root.crono.text = Tools.ponDobleCero(minutos) + ":" + Tools.ponDobleCero(_segundos) + ":" + Tools.ponDobleCero(mili);

//Aqui se emplea una utilidad llamada ponDobleCero para poner un cero en caso de que la cantidad mostrada no es 2 cifras

}

Por Nexus7

3 de clabLevel



 

msie
Citar            
MensajeEscrito el 19 Oct 2011 06:59 pm
Asi quedaria lo que queres hacer, adaptalo a tu gusto:

Código ActionScript :

var timer:Timer;
var segundos:int;
var minutos:int;
var mili:uint = 0;
var mili2:uint = 0;
var initTimer:uint;
var initTimer2:uint;
var milisegundos:int = 0;


lanzaFase();
function lanzaFase():void{

timer = new Timer(1,0);


timer.addEventListener(TimerEvent.TIMER, handlerShowTime);
initTimer = getTimer();
initTimer2 = getTimer();
timer.start();
}


function handlerShowTime(evento:TimerEvent):void{
mili = getTimer() - initTimer;
mili2 = getTimer() - initTimer2;
if (mili >= 100)
{
   mili = 0;
   initTimer = getTimer();      
}

if (mili2 >= 1000)
{
   mili2 = 0;
   initTimer2 = getTimer();
   
   segundos++;
   if (segundos >= 60)
   {
      segundos = 0;
      minutos++;
   }   
}

   horario.text = minutos + ":" + ((segundos < 10)? "0" : "") + segundos + ":" + mili;

} /**/

Por exekiel21

Claber

164 de clabLevel



Genero:Masculino  

programador

firefox
Citar            
MensajeEscrito el 19 Oct 2011 07:14 pm
Genial muchisimas gracias, de verdad, ya me funcionó, te lo agradesco, oye nada mas una duda como podria hacerle para que no se mueva tanto el contador al cambiar en las decimas de segundo, o eso es normal??

Por Nexus7

3 de clabLevel



 

msie
Citar            
MensajeEscrito el 19 Oct 2011 07:45 pm
La unica forma de que no se mueva seria q tengas 5 cajas de texto,,, una caja para minuto, otra para segundo, otra para milisegundo y otras 2 para los dos puntos.

abrazo


eXe

Por exekiel21

Claber

164 de clabLevel



Genero:Masculino  

programador

firefox
Citar            
MensajeEscrito el 19 Oct 2011 08:46 pm
Ok muchas gracias por el tip, y gracias por tu ayuda

Por Nexus7

3 de clabLevel



 

msie

 

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