yo utilizo una clase propia
Código ActionScript :
package
{
import flash.display.Stage;
import flash.utils.Timer;
import flash.events.TimerEvent;
import flash.events.MouseEvent;
import flash.events.KeyboardEvent;
import flash.events.Event;
public class ControlActividad
{
//Clase para control de Tiempo
private var Tiempo: Timer;
//Variable para control de tiempo que transcurre para Inactividad --> valor en milisegundos --> 1000 por seg.
private var _Lapso: Number;
//Variable de area de dibujo principal
private var Etapa: Stage;
//Variable que nos indica si hay Actividad (true) o Inactividad (false)
public var Actividad: Boolean;
//Funcion para Acitvacion
public var FuncionActiva: Function;
//Funcion para Desactivacion
public var FuncionDesactiva: Function;
public function ControlActividad (Etapa: Stage, Lapso: Number= 5000)
{
//Capturamos el area de dibujo principal
this.Etapa= Etapa;
//Asignamos Lapso para Tiempo que tiene que transcurrir para Inactividad
_Lapso= Lapso;
//Creamos el controlador de tiempo. Hara un control por cada segundo
Tiempo = new Timer(_Lapso);
//Indicamos que ahora hay Actividad
Actividad= true;
//Definimos evento para control de Tiempo
Tiempo.addEventListener(TimerEvent.TIMER,ControlTiempo);
//Definimos eventos que reinicie o active la Actividad
Etapa.addEventListener(MouseEvent.MOUSE_MOVE,Activacion);
Etapa.addEventListener(MouseEvent.MOUSE_WHEEL,Activacion);
Etapa.addEventListener(MouseEvent.CLICK,Activacion);
Etapa.addEventListener(KeyboardEvent.KEY_DOWN, Activacion);
}
public function Inciar(): void
{
//Iniciamos el Contador de Tiempo
Tiempo.start();
}
public function get Lapso (): Number
{
return _Lapso;
}
public function set Lapso (Valor: Number): void
{
_Lapso= Valor;
Tiempo.delay= _Lapso;
Tiempo.reset();
}
public function ControlTiempo (e: TimerEvent): void
{
//al completar el tiempo definido en Lapso entramos en Inactividad y llamamos Funcion
Actividad= false;
Tiempo.stop();
if (FuncionDesactiva!= null) FuncionDesactiva.call();
}
public function Activacion (e: Event): void
{
//reseteamos el contador de tiempo indistintamente si hay actividad o no
Tiempo.reset();
//ponemos en marcha otra vez ya que reset lo de tiene
Tiempo.start();
//miramos si estamos no estamos en inactividad y reanudamos la Actividad
if (!Actividad)
{
Actividad= true;
if (FuncionActiva!=null) FuncionActiva.call();
}
}
}
}
y lo utilizo asi
Código ActionScript :
import flash.text.TextField;
import lib.ControlActividad;
var Texto: TextField= new TextField();
Texto.text= "Primera Pasada";
addChild(Texto);
//30 segundos para inactividad
var Control: ControlActividad= new ControlActividad(stage,30000);
Control.FuncionActiva= HayActividad;
Control.FuncionDesactiva= NoHayActividad;
Control.Inciar();
function HayActividad (): void
{
Texto.text= "Hay actividad";
}
function NoHayActividad (): void
{
Texto.text= "No hay actividad";
}
espero que te sirva
saludos