¿Quieres registrarte?

Detectar Inactividad del Mouse con ActionScript

Por: eveevans
2 de Marzo del 2007
389 de clabLevel
Otros artículos de eveevans
13,420 visitas

Estuve creando una pequeña aplicación en Flash en la que necesitaba que en el momento en el que hubiese transcurrido cierto plazo de tiempo y el Mouse no se hubiese movido, se ejecutase una determinada acción actionscript.

Aquí, más o menos, el script que hice:

Código :

var raton:Object = new Object();
var ax:Number;
var ay:Number;
var px:Number;
var py:Number;
var reloj:Number = 0;
raton.onMouseMove = function()
{
   reloj = 0;
   ax = _xmouse;
   ay = _ymouse;
};
function contador()
{
   reloj++;
   px = _xmouse;
   py = _ymouse;
   if ((reloj >= 5) && (ax = px) && (ay = py))
   {
      trace("Inactividad encontrada");
   }
}
var hilo = setInterval(contador, 1000);
Mouse.addListener(raton);

Explicación:


Hago un listener llamado "raton" que escuche al Mouse, el cual tiene la función:

Código :

raton.onMouseMove=function();

Que hace que cuando el mouse se mueva reinicie el contador "reloj"
y actualice las variables "ax" y "ay", es decir las actuales coordenadas del Mouse.

Luego mediante un hilo llamo concurrentemente a la función "contador", la cual aumenta la variable "reloj" (que es el contador) y guarda la posicion del mouse en ese segundo "px" "py"

Después hace un if() preguntando si han pasado 5 segundos y las variables ax ay
coinciden con px py ,( es decir que las coordenadas por movimiento son iguales a las creadas
por la función) entonces el Mouse ha estado inactivo en 5 segundos.

Enviar a twitter Enviar a facebook


También te interesa


Etiquetas actionscript

Comentarios | Enviar un comentario
Puede ser muy útil, bien! :)
Por: Sisco
Enconces supondre que en la parte del codigo de: Contador

Código :

trace("Inactividad encontrada")


Lo puedo cambiar por una animacion en particular mencionado .. q no "hay actividad" .. verdad? :)
Por: Pley
claro , asi es Play
y si por ejemplo quieres ocultar el Mouse cuando hay inactividad le pones
Mouse.hide();
pero recuerda poner en el raton.onMouseMove el
Mouse.show();
Por: eveevans
si buen aporte! con un poco de creatividad se le puede sacar mucho jugo
Por: Mukongo
Excelente Aporte, Gracias (y)
Por: La100rra
GOOD SCRIPT
ME SIRVIO MUCHO
Por: 0M4R_blog
No hace mucho escribí otro Tip para hacer más o menos lo mismo ^^
Por: Zguillez
esta muy bueno eveevans
Por: Roly_blog
mmm... ^^ ^^ ^^ que bien que les sirvió!!
Por: eveevans
hola...me interesa mucho la informatica y todo este tema, pero no tengo idea del tema, en la compu soy un desastre, pero estoy dispuesto a aprender, me interesa la pag. chauu
Por: pedro_blog
he aqui lo prometido:
cabe repetir que esta compilado con MDM ZINC, es por eso que veran comandos que no son de ActionScript dentro del code:

Código :

mdminit();
mdm.Exception.enableHandler();
import mx.video.*;
Stage.scaleMode="exactFit";
var raton:Object=new Object();
var ax:Number;
var ay:Number;
var px:Number;
var py:Number;
var reloj:Number=0;
var vision:Boolean;
var maxormin:Number=-1;

_root.attachMovie("FLVPlayback","mmp",1);
mmp.skinAutoHide=false;
credi._visible=false;

_global.myCallBackFunction= function(myValue)
{
   if(myValue!="false")
   {
   _root.mmp.contentPath=myValue;
   _root.mmp.play()
   }
}


function verono(quierover:Boolean)
{
   if(!quierover)
      {
      mmp.skin="";
      _root.barra._visible=false;
      Mouse.hide();
      vision=false;
      }
   else
      {
      mmp.skin="SteelOverAll.swf";
      _root.barra._visible=true;
      Mouse.show();
      vision=true;
      }
}

barra.abrir.onRelease=function()
{
   trace("open");
   mdm.browsefile(myCallBackFunction);
}

barra.about.onRelease=function()
{
   _root.credi._visible=true;
}

barra.bminimizar.onRelease=function()
{
   mdm.Application.minimize();
}

barra.brestaurar.onRelease=function()
{
   _root.maxormin*=-1;
   if(_root.maxormin >0)
      mdm.Application.maximize();
   else
      mdm.Application.restore();
}

barra.bcerrar.onRelease=function()
{
   mdm.Application.exit();
}

raton.onMouseMove=function()
{
   resetactual();
}

raton.onMouseDown=function()
{
   resetactual();
}

function resetactual()
{
   reloj=0;
   ax=_xmouse;
   ay=_ymouse;
   if(!vision)
      verono(true);
}

function contador()
{
   reloj++;
   px=_xmouse;
   py=_ymouse;
   if(   (reloj>=2) && (ax=px) && (ay=py) )
      verono(false);
}

var hilo=setInterval(contador,1000);
Mouse.addListener(raton);


Por: eveevans
no biene nada de la funcionalidad
Por: yo_blog
muy bueno, yo probé hacer un cursor personalizado, y le puse la funcion del botón fade in fade out de rosvel, entonces cuando el mouse se mueve, el cursor aparece, y a los 5 segundos de no moverlo se desaparece, y asi cada vez que se mueve el mouse reaparece, y a los 5 seg desaparece.
Por: el_chejin
ah, qye bueno que le encontraron utilidad,
por cierto , el codigo que puse de primero tiene lineas de mas
se puede dejar asi

Código :

var raton:Object=new Object();
    var reloj:Number=0;
    var espera:Number=3;

    raton.onMouseMove=function(){
    reloj=0;
    }

    function contador()
    {
    trace(reloj);
    reloj++;
    if(reloj>=espera)
    trace(”inactividad encontrada”);
    }

    var hilo=setInterval(contador,1000);
    Mouse.addListener(raton); 

Por: eveevans
Hola... la función del mouse (MUY BUENA!!!! MUY SIMPLE!! GROSO EVVEVANS!), pero para AS3 cómo sería? porque no funciona con AS3, sí con 2.

Abrazos.
Por: Emiliano-blog
hola de nuevo...

qué es o qué hace o para qué sirve ese código largo que escribiste, eveevans, el anterior al último me refiero.
Abrazos!
Por: Emiliano-blog
ah, solo era el codigo de un reproductor de FLV que hice con MDM y Flash, en el cual ocupaba el codigo de deteccion de inactividad del mouse para esconder el menu

http://www.cristalab.com/foros/t35707.html
Por: eveevans
Hola a todos muy bueno el script...
solo que estoy un poco perdido.

Me gustaria poder detectar si el raton esta inactivo como pon el codigo y una vez sucedido eso se active una pelicula
es decir
_root.mc.gotoAndPlay(2);
por ejemplo
pero no se dnd poner este codigo
alguien puede ayudarme..?
please
Por: andtt
alguien puede echarme una mano por favor?
Por: andtt
Gracias por la ayuda..!!
Por: andtt-blog
por alguna extraña razon no me funciona
Por: ZelticFrost-blog
porfa seria mejor un videotutorial para
saber mejor no?¿?¿?
Por: kevin-blog
Deja un comentario
IMPORTANTE

Recuerda ser respetuoso, no insultes a otras personas, ni uses palabrotas, hay una persona al otro lado de la pantalla.

Habla bien, NO ESCRIBAS EN MAYUSCULA TODO, no escribas como en un SMS, evita cosas como "ke", "x q" y demás abreviaciones.

Aquí funcionan las etiquetas de los foros, puedes usar [b] para negrita, [img] para las imágenes, [url] para los enlaces, etc.

Si tienes preguntas técnicas, envíalas mejor al foro.