Comunidad de diseño web y desarrollo en internet online

Detectar Inactividad del Mouse en AS3

Citar            
MensajeEscrito el 19 Oct 2009 06:49 pm
Buenas a todos, les dejo un codigo que desarrollé para detectar la inactividade del mouse en AS3 y ejecutar una accion al respecto.

Éste está en su versión orientada a objetos:

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);
      }
   }
}


Para implementarlo directamente en la linea del tempo 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);
}

Por didok3003

2 de clabLevel



 

firefox
Citar            
MensajeEscrito el 19 Oct 2009 07:01 pm
Movido a aportes

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 01 Abr 2011 03:27 pm
ooooooo muy buen post... pero..... no me funciona a mi.... y necesito tener eso en un swf de flash que estoy haciendo, explico...

estoy haciendo un directorio para un TV touch creen que va para un mall, que no solo muestre los locales y donde estan ubicados dentro del mapa y esas cosas (eso ya se puede decir que lo tengo hecho XD)

el asunto es que despues de cierto tiempo debe activar otra serie de videos publicitarios y cuando las personas vuelvan a tocar el tv vuelva al directorio.

para mantener actualizado el directorio y poner los videos donde trabajo usamos un programa que se llama Scala (http://www.scala.com) asi que para correr los videos el programador de Scala que trabaja con nosotros lo va a hacer atravez de un php que le de la orden a scala de pasar los videos y no el directorio... la cosa es que yo debo hacer que el flash que estoy haciendo escriba en el php un valor "x" en este caso "1" cuando aya inactividad.

la cosa es que estube viendo que muchos hacen es que meten toda la animacion dentro de un movieclip, pero... yo tengo toda la animacion sobre el root del flash... no se si es por eso que tu codigo no me funciono o es porque no se ajusta a lo que necesito.

Porfa agradeceria mucho tu pronta respuesta o la ayuda de cualquier otro que pueda... si me pueden explicar como hacerlo seria mejor q solo dejarme el codigo jejejejejeje

GRACIAS

Por gersonruiz

36 de clabLevel



Genero:Masculino  

Diseñador Gráfico

firefox

 

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