Comunidad de diseño web y desarrollo en internet online

Problema con clearInterval en una clase

Citar            
MensajeEscrito el 24 Ene 2006 07:29 pm
Hola, tengo la siguiente clase:

Código :

class CJugada
{
   static private var _contador:Number;
   private var _intervalo:Number;

   // En el constructor pongo _contador = 0

   public function comenzar( intervalo ):Void
   {
      _intervalo = setInterval( contar , intervalo );
   }
   public function contar( ):Void
   {
      trace(_intervalo); // Aquí sale undefined
      
      // Si hemos llegado al final...
      if( _contador == 10 )
      {
         trace("Finalizado");
         clearInterval( _intervalo );
      }
      else
      {
         _contador++;
         trace("Contador = " + _contador);
      }
   }
}


Ahora creo la instancia de la clase:

Código :

var clase:CJugada = new CJugada();
jugada.comenzar(2000);


Al ejecutarse, empieza a mostrar el valor del contador hasta que llega a 10, pero al llegar a 10, no detiene el setInterval, empieza a poner "Finalizado" todo el rato repitiéndose.
Me he dado cuenta que el trace(_intervalo) me sale undefined.

En teoría, al crear el setInterval, guarda el valor en _intervalo, pero luego me sale undefined.

¿Alguien sabe en qué estoy fallando?

Gracias por adelantado.

Por i02hajij

15 de clabLevel



 

firefox
Citar            
MensajeEscrito el 25 Ene 2006 01:49 am
solo tienes que poner la variable _intervalo en variable estatica

Por geronimo

65 de clabLevel



Genero:Masculino  

mozilla
Citar            
MensajeEscrito el 25 Ene 2006 01:53 am
mejor dicho tu classe seria mas o menos asi


class CJugada
{
private static var _contador:Number;
private static var _intervalo:Number;
// En el constructor pongo _contador = 0
function CJugada (Void)
{
_contador = 0;
}
public function comenzar (intervalo:Number):Void
{
_intervalo = setInterval (contar, intervalo);
}
public static function contar (Void):Void
{
trace (_intervalo);
if (_contador == 10)
{
trace ("Finalizado");
clearInterval (_intervalo);
}
else
{
_contador++;
trace ("Contador = " + _contador);
}
}
}




y en flash :

import CJugada;
var clase:CJugada = new CJugada ();
clase.comenzar (700);

Por geronimo

65 de clabLevel



Genero:Masculino  

mozilla

 

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