micheloud escribió:
creo que deberías detectar el movimiento del mouse todo el tiempo y lanzar un interval para saber cuanto tiempo pasa sin movimiento
Código :
// esta funcion la llamas cuando detectas movimiento de mouse...
function seMovio(){
segundos = 0;
clearInterval(intervalo);
intervalo = setInterval(cantidadSegundos, 1000);
}
var segundos:Number = 0;
function cantidadSegundos(){
segundos ++;
if (segundos >= 60){
// ejecucion del protector de pantalla
}
}
lo hice aqui rapidito, pero deberia funcionar.
En ActionScript 3 la migración sería:
Código :
package
{
import flash.display.MovieClip;
import flash.utils.Timer;
import flash.events.TimerEvent;
public class Main extends MovieClip
{
////////////////////////////
private var timer :Timer;
////////////////////////////
private function Main()
{
timer = new Timer(1000,2); //solo defino la variable
//Primer valor (1000 = 1 segundo) es el intervalo de conteo en milisegundos,
//el segundo valor (2) es el numero de veces que se ejecuta el ciclo (en total dos segundos)
stage.addEventListener(MouseEvent.MOUSE_MOVE,timerON,false,0,true);
//los ultimos tres valores son para el control de la chache
}
private function timerON(evt:MouseEvent):void
{
timer.addEventListener(TimerEvent.TIMER_COMPLETE, mouseInactive,false,0,true);
//el evento es TIMER_COMPLETE, así cuando se cumpla el coclo completo (1000,2)
//es decir dos segundos (o el que decidan, solo remplacen el 2 por el numero que quieran)
timer.reset(); //si muevo el mouse antes de que finalice el conteo se reinicia
timer.start(); //si no se a iniciado el conteo, se inicia
}
private function mouseInactive():void
{
/* Aqui va la accion que desean que ocurra si el mouse no se mueve */
//igual recomiendo siempre liberar la cache eliminando el listener del ciclo así:
timer.removeListener(TimerEvent.TIMER_COMPLETE,mouseInactive);
}
}
}
Recuerden que este es en AS3 y está en su versión orientada a objetos.
Si lo implementan en la linea del tiempo directamente sería así:
Código :
var timer:Timer = new Timer(1000,2);
stage.addEventListener(MouseEvent.MOUSE_MOVE,timerON,false,0,true);
function timerON(evt:MouseEvent):void
{
timer.addEventListener(TimerEvent.TIMER_COMPLETE, mouseInactive,false,0,true);
timer.reset();
timer.start();
}
private function mouseInactive():void
{
/* Aqui va la accion que desean que ocurra si el mouse no se mueve */
timer.removeListener(TimerEvent.TIMER_COMPLETE,mouseInactive);
}