Sidedev - Mouse Gesture Manager

Contenido

  1. Introducción
  2. Descargas
  3. Uso
  4. Ejemplo
  5. Referencia

Introducción

La clase MouseGestureManager se utiliza para capturar gestos realizados con el ratón. Estos gestos pueden ser capturados y utilizados como parte de la interacción del usuario con el sitio web. Esto permite añadir un grado de usabilidad/accesibilidad a la navegación a través de un sitio web. Está inpirado en el navegador Opera que fué el primero en implementarlo (que yo sepa) y más tarde salieron diversos plugins para Firefox, destacando all-in-one gestures.

Internamente se captura el vector de movimiento que ha realizado el usuario y si este entra dentro de el límite mínimo impuesto por deltaPrecision y lengthPrecision se procesa y se clasifica según una de las cuatro direcciones: arriba (T), abajo (B), derecha (R) e izquierda (L). Aunque la clase actualmente esta limitada a estas, se puede extender fácilmente para obtener diagonales. Actualmente esto no se ha diseñado así porque consideré que con 4 se podian realizar muchos gestos y resultaría más sencillo para el usuario final.

La clase comienza la captura cuando se pulsa el botón del ratón y se detiene cuando se suelta. La captura puede ser activada y desactivada a través de los métodos activate() y deactivate(). El gesto se obtiene a través del evento gesture cuando el usuario a soltado el boton, aunque se puede ir obteniendo durante la interacción a través de deltaChange.

Descargas

Extension MXP autoinstalable

Utiliza el Macromedia Extension Mánager colocando todos los ficheros en las carpetas correctas.

Coloca los ficheros dentro de las carpetas de Classes, Samples y HelpPanel.

Ficheros comprimidos

Fichero comprimido con todos los archivos necesarios para realizar la instalación manualmente.

Uso

El siguiente código está extraido del ejemplo adjunto. Básicamente crea una nueva instancia de la clase y se subscribe al evento gesture. Cada vez que salta, se examina el símbolo que nos envía y se hace una llamada a un método determinado del modelo.

var gm:MouseGestureManager = new MouseGestureManager(); gm.addEventListener("gesture",this); function gesture(e:Object){ switch (e.symbol){ case "R": model.siguiente(); break; case "L": model.anterior(); break; case "DR": model.ultimo(); break; case "DL": model.primero(); break; case "RDLT": fscommand("quit"); break; } trace(e.symbol); }

Ejemplo (fuente incluida en la extension y zip)

Referencia

Constructor

net.sidedev.ui.MouseGestureManager([lengthPrecision:Number,deltaPrecision:Number])

Parámetros:

deltaPrecision

instance.deltaPrecision = value

Número que indica la precisión en radianes que debe tener el vector para que se considere que ha cambiado de dirección.

lengthPrecision

instance.deltaPrecision = value

Número que indica el desplazamiento mínimo en pixeles que debe tener el vector para que sea tomado en cuenta.

addEventListener

addEventListener(eventName:String,listener:Object)

Subscribe un objeto a un evento determinado. Mirar en la ayuda sobre los componentes de Flash.

activate

instance.activate()

Activa la captura de gestos cuando se pulse el botón izquierdo del ratón.

deactivate

instance.deactivate()

Desactiva la captura de gestos cuando se pulse el botón izquierdo del ratón. De esta manera se evita el procesamiento de coordenadas cuando no es necesario.

deltaChange

Evento que se emite cuando se ha percibido un cambio de dirección en el gesto. Este cambio viene determinado por los valores minimos de lengthPrecision y deltaPrecision. Envía un objeto con las siguientes propiedades:

Propiedades del evento:

gesture

Evento que se emite cuando se ha finalizado el gesto de ratón al soltar el boton izquierdo.

Propiedades del evento:

removeEventListener

removeEventListener(eventName:String,listener:Object)

Desubscribe un objeto de un evento determinado. Mirar en la ayuda sobre los componentes de Flash