2010-03-13 15 views
5

he diseñado una aplicación de kiosco de juegos en as3 la estoy usando en una Sony Vaio l pc (como hp's touchsmarts) en windows 7 la aplicación no necesita gestos multitáctiles (solo clics y arrastres de un solo toque) así que estoy usando eventos de mouseAdobe AIR: la pantalla táctil no desencadena el evento del mouse correctamente

todo está bien (incluidos los eventos de clic y movimiento del mouse) excepto que un solo toque en la pantalla (sin movimiento) doesn ' t disparar un mouse hacia abajo. solo se dispara después de un pequeño movimiento del dedo

fuera de la aplicación, en mi escritorio, veo que el pequeño cursor de windows 7 salta inmediatamente al lugar donde se coloca un dedo, lo que significa que este problema no es un hardware o un problema de Windows, sino más bien cómo internamente la aplicación flash recibe eventos del evento "traducidos" del ratón táctil desde el sistema operativo.

por ejemplo, en un juego de Windows Solitario, un simple toque en la pantalla resalta inmediatamente la carta tocada. en mi aplicación, un botón cambiará al estado inactivo solo si lo toco y también muevo ligeramente el dedo (haga clic en eventos - hacia abajo y hacia arriba) se activan bien)

no debería el evento MOUSE_DOWN disparar exactamente como un TOUCH_BEGIN en la nueva clase touchevent?

¿Alguna idea?

Respuesta

0

Si el cursor se mueve cuando tocan, supongo que el sistema operativo solo está registrando esto como MOUSE_MOVE y no como MOUSE_DOWN. Como se trata de una pantalla táctil, podrías considerar hacer un clic en MOUSE_MOVE, ya que probablemente el usuario no esté arrastrando el dedo creando un evento MOUSE_MOVE real.

Bueno, si en realidad están arrastrando el dedo por cosas, entonces podrías asumir un MOUSE_MOVE que de repente coloca el cursor sobre un botón (sin MOUSE_MOVE anterior, es decir, arrastrando), es un MOUSE_DOWN.

3

Tuve el mismo problema.

Al establecer la propiedad Multitouch.inputMode a MultitouchInputMode.TOUCH_POINT (el valor por defecto es MultitouchInputMode.GESTURE) aparece para hacer el envío MOUSE_DOWN evento cuando el usuario toca la pantalla y no cuando se tocan y se mueven o el tacto y la liberación.

+1

Esto solucionó el problema que estaba teniendo con una tableta de Windows 8. ¡Gracias! – marcelebrate

+0

¿Estoy teniendo el mismo problema? ¿Dónde debería cambiar esta opción? No pude encontrarlo – tebdilikiyafet

0

acaba de comprar una nueva pantalla táctil y se encontró con el problema de nuevo

Así que la solución es establecer Multitouch.inputMode a MultitouchInputMode.TOUCH_POINT escribiendo cualquier parte del código:.

Multitouch.inputMode = MultitouchInputMode.TOUCH_POINT; 

Observe que no funciona cuando se prueba por Ctrl+Enteren Flash Editor (al menos en CC 2015). Entonces, por ejemplo, necesita abrir .SWF por separado en Flash Player.

EDITAR: ¡Pero funciona en modo de depuración! (Ctrl+Shift+Enter)

Cuestiones relacionadas