Comunidad de diseño web y desarrollo en internet online

Contador de Tiempo funcion TIMER Error #1009: No se puede ac

Citar            
MensajeEscrito el 02 Jun 2009 04:15 pm
Hola a todos,estoy generando un contador de tiempo regresivo en unt exto dinamico, es algo muy simple, sin embargo esto me genera un error del tipo

TypeError: Error #1009: No se puede acceder a una propiedad o a un método de una referencia a un objeto nulo.
at UNMM_fla::MainTimeline/reloj()
at flash.utils::Timer/_timerDispatch()
at flash.utils::Timer/tick()


no logro entender con claridad a que no puede acceder :(

El codigo que estoy utilizando es el siguiente:


//variables
var tiempo:Number=10;
var suma:Number=1;

//funcion para contar el tiempo
function reloj(event:TimerEvent):void
{

reloj_txt.text = tiempo.toString(tiempo);
tiempo-=suma;

}
var intervalo:Timer = new Timer(1000, 10);
intervalo.addEventListener(TimerEvent.TIMER,reloj);
intervalo.start();

Por Musphel

2 de clabLevel



 

opera
Citar            
MensajeEscrito el 02 Jun 2009 04:46 pm
Tienes escrito

Código ActionScript :

reloj_txt.text =tiempo.toString(tiempo); 

DEBERÍA ser, siempre que tengas una caja de texto cuyo "nombre de intancia" sea reloj_txt

Código ActionScript :

reloj_txt.text =tiempo.toString(); 

Por Eliseo2

710 de clabLevel



 

firefox
Citar            
MensajeEscrito el 02 Jun 2009 04:57 pm
El problema radica en q el programa no puede entrar a la funcion tan pronto como llamo reloj si importar lo que eta funcion contenga, muestra el mensage cada segundo

TypeError: Error #1009: No se puede acceder a una propiedad o a un método de una referencia a un objeto nulo.
at UNMM_fla::MainTimeline/reloj()
at flash.utils::Timer/_timerDispatch()
at flash.utils::Timer/tick()

esto significa que el contador esta bien y se activa cada segundo pero no envia los parametros requeridos para ejecutar la funcion

Por Musphel

2 de clabLevel



 

opera
Citar            
MensajeEscrito el 02 Jun 2009 09:32 pm
A mi parecer la solucion es muy facil, como dijo Eliseo2 tu problema esta en esta linea:

Código :

reloj_txt.text = tiempo.toString(tiempo);


creo que esta demas pasarle la variable tiempo como parametro al metodo toString(), el parametro opcional de toString es una base de conversion y su valor predeterminado es 10, es decir la convercion clasica y la que normalmente todos desean...y justamente ai radica tu problema, como el valor de va variable tiempo va disminuyendo constantemente, la base de conversion va dismunuyendo tambien, y es por eos que te envia ese error, si tu codigo kedaria como este correria sin problemas:

Código :

//variables 
var tiempo:Number=10;
var suma:Number=1;

//funcion para contar el tiempo 
function reloj(event:TimerEvent):void
{

reloj_txt.text = tiempo.toString();//<-- eliminado tiempo como parametro
tiempo-=suma;
trace(suma);
}
var intervalo:Timer = new Timer(1000, 10);
intervalo.addEventListener(TimerEvent.TIMER,reloj);
intervalo.start();


Como consulta aparte, (espero sea correcto preguntar aqui)... Eliseo como ase para poner esos campos de codigo que resaltan la sintaxis?, estuve buscando en el foro pero no encontre como.
--

Por marrkitos

51 de clabLevel



 

Arequipa - Peru

chrome
Citar            
MensajeEscrito el 03 Jun 2009 06:30 am
No se me ocurre otra cosa que que tengas que importar

Código ActionScript :

   import flash.events.TimerEvent;
   import flash.utils.Timer;

Pero te debería dar error a la hora de compilarlo
:(

NOTA:Para formatear código podemos escribir el código entre [ as ] y [ /as ] (todo junto -si lo hacemos entre
[ code ] y [ /code ] no se verán coloreadas las instrucciones-)

Por Eliseo2

710 de clabLevel



 

firefox
Citar            
MensajeEscrito el 04 Jun 2009 02:26 am
Moachos modifique el codigo x algo ams simple pero sigue el mismo error



Código ActionScript :

   
import flash.events.TimerEvent; 
import flash.utils.Timer; 
   
   
//variables 
var tiempo:Number=10;
//var coin:Number=0;
var suma:Number=1;
//var i:Number=60;

//funcion para contar el tiempo 

function reloj(event:TimerEvent):void
{
         this.reloj_txt.text = "77"
         //reloj_txt.text = tiempo.toString(); 
         //tiempo-=suma;
         //coin++;
         
}
var intervalo:Timer = new Timer(1000, 60);
intervalo.addEventListener(TimerEvent.TIMER,reloj);
intervalo.start();





el mensaje sigue siendo

TypeError: Error #1009: No se puede acceder a una propiedad o a un método de una referencia a un objeto nulo.
at UNMM_fla::MainTimeline/reloj()
at flash.utils::Timer/_timerDispatch()
at flash.utils::Timer/tick()

Por Musphel

2 de clabLevel



 

opera
Citar            
MensajeEscrito el 04 Jun 2009 06:24 am

Eliseo2 escribió:


DEBERÍA ser, siempre que tengas una caja de texto cuyo "nombre de instancia" sea reloj_txt

Y ahí ya si que no se me ocurre nada más :(

Por Eliseo2

710 de clabLevel



 

firefox
Citar            
MensajeEscrito el 04 Jun 2009 06:38 am
Claro que si esos nombres los traigo directamente desde la opcion de seleccionar, no los escribo para disminuir la posibilidad de cometer un error

Por Musphel

2 de clabLevel



 

opera
Citar            
MensajeEscrito el 04 Jun 2009 08:53 pm
Pero que pasa tio? no ntiendo el problema si desde que pegaste tu primer codigo ami me corrio sin ningun problema, mira para evitar cualkier prueva este codigo que te aseguro que con tan solo un copy & paste te funcionara sin mayor esfuerzo.

Código ActionScript :

import flash.events.TimerEvent;  
import flash.utils.Timer;  
    
    
//variables  
var tiempo:Number=10; 
var suma:Number=1;

//creamos la caja de texto dinamicamente para ke no aya problemas
var reloj_txt:TextField = new TextField();
reloj_txt.border = true;
reloj_txt.x = reloj_txt.y = 40;
addChild(reloj_txt);
 
//funcion para contar el tiempo
function reloj(event:TimerEvent):void 
{ 
         this.reloj_txt.text = tiempo.toString();
         tiempo-=suma; 
         //coin++; 
          
} 
var intervalo:Timer = new Timer(1000, 10); 
intervalo.addEventListener(TimerEvent.TIMER,reloj); 
intervalo.start();

Por marrkitos

51 de clabLevel



 

Arequipa - Peru

firefox

 

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