2010-03-13 19 views
5

ho progettato un'app kiosk di giochi in as3 lo sto usando su un Sony vaio l pc (come i touchsmarts di hp) in windows 7 l'app non ho bisogno di gesti multi-touch (solo clic e trascinamenti con un solo tocco) così sto usando gli eventi del mouseAdobe AIR: il touchscreen non attiva correttamente l'evento mouse down

tutto va bene (inclusi i clic del mouse e gli eventi di spostamento) tranne che un singolo tocco sullo schermo (senza spostamento) non fa spara un mouse verso il basso. viene sparato solo dopo una piccola mossa del dito

fuori dall'app, sul mio desktop, vedo che il piccolo cursore di Windows 7 salta immediatamente dove è posizionato un dito, il che significa che questo problema non è un hardware o un problema con Windows ma piuttosto come internamente l'app flash riceve eventi "tradotti" touch-to-mouse dal sistema operativo.

ad esempio, in un gioco Windows Solitaire, un semplice tocco sullo schermo evidenzia immediatamente la carta toccata. nella mia app, un pulsante passerà allo stato negativo solo se lo tocco e anche muovere leggermente il dito (fare clic su eventi - giù e su - sono attivati ​​correttamente)

non dovrebbe l'evento MOUSE_DOWN innescare esattamente come un TOUCH_BEGIN sarebbe nella nuova classe touchevent?

qualche idea?

risposta

0

Se il cursore si sposta quando toccano, quindi presumo che il sistema operativo stia registrando questo come MOUSE_MOVE e non MOUSE_DOWN. Dal momento che si tratta di un touchscreen, puoi semplicemente considerare MOUSE_MOVE un clic poiché l'utente probabilmente non sta effettivamente trascinando il dito attorno alla creazione di un vero evento MOUSE_MOVE.

Bene, se in realtà stanno trascinando il dito per cercare qualcosa, allora potresti assumere un MOUSE_MOVE che colloca improvvisamente il cursore su un pulsante (senza MOUSE_MOVE precedente che trascini), è un MOUSE_DOWN.

3

Ho riscontrato lo stesso problema.

L'impostazione della proprietà Multitouch.inputMode-MultitouchInputMode.TOUCH_POINT (il valore predefinito è MultitouchInputMode.GESTURE) sembra rendere l'invio MOUSE_DOWN evento quando l'utente tocca lo schermo e non quando si toccano e si muovono o il tatto e il rilascio.

+1

Questo problema risolveva il problema con un tablet Windows 8. Grazie! – marcelebrate

+0

Ho lo stesso problema? Dove dovrei cambiare questa opzione? Non riuscivo a trovarlo – tebdilikiyafet

0

Appena comprato un nuovo touchscreen e incontrato di nuovo il problema

Quindi la soluzione è quella di impostare Multitouch.inputMode-MultitouchInputMode.TOUCH_POINT scrivendo qualsiasi punto del codice:.

Multitouch.inputMode = MultitouchInputMode.TOUCH_POINT; 

Si noti che non funziona durante il test da Ctrl+Enterin Flash Editor (almeno in CC 2015). Ad esempio, è necessario aprire .SWF separatamente in Flash Player.

MODIFICA: Ma funziona in modalità Debug! (Ctrl+Shift+Enter)

Problemi correlati