Adobe AIR: touch screen doesn't trigger mouse down event correctly
Asked Answered
B

3

5

i have designed a gaming kiosk app in as3 i am using it on a Sony vaio l pc (like hp's touchsmarts) in windows 7 the app doesn't need any multi-touch gestures (only single touch clicks and drags) so i am using mouse events

everything is fine (including mouse click and move events) except that a single touch to the screen (with no move) doesn't fire a mouse down. it is fired only after a small move of the finger

outside the app, on my desktop, i see that the small windows 7 cursor jumps immediately to where a finger is placed, meaning this issue isn't a hardware or a windows problem but rather how internally the flash app receives "translated" touch-to-mouse events from the os.

for example, in a windows Solitaire game, a simple touch to the screen immediately highlights the touched card. in my app, a button will change to the down state only if i touch it and also move my finger slightly (click events - down and up - are triggered fine)

shouldn't the MOUSE_DOWN event trigger exactly like how a TOUCH_BEGIN would in the new touchevent class?

any ideas?

Banks answered 13/3, 2010 at 0:32 Comment(0)
H
3

I encountered the same problem.

Setting the Multitouch.inputMode property to MultitouchInputMode.TOUCH_POINT (the default value is MultitouchInputMode.GESTURE) appears to make the MOUSE_DOWN event dispatch when the user touches the screen and not when they touch and move or touch and release.

Hypolimnion answered 24/1, 2012 at 17:19 Comment(2)
This fixed the issue I was having with a Windows 8 tablet. Thanks!Araxes
I am having the same problem? Where should I change this option? I couldn't find itMaryannemarybella
S
0

If the cursor moves when they touch, then I assume the OS is just registering this as a MOUSE_MOVE and not a MOUSE_DOWN. Since it's a touchscreen, you could just consider MOUSE_MOVE a click since the user probably isn't actually dragging their finger around creating a real MOUSE_MOVE event.

Well, if they are actually dragging their finger around for stuff then you could assume a MOUSE_MOVE that suddenly places the cursor on a button (with no prior MOUSE_MOVE i.e. dragging), it's a MOUSE_DOWN.

Siloa answered 16/8, 2010 at 16:50 Comment(0)
L
0

Just bought a new touchscreen and encountered the problem again.

So the solution is to set Multitouch.inputMode to MultitouchInputMode.TOUCH_POINT by writing anywhere in your code:

Multitouch.inputMode = MultitouchInputMode.TOUCH_POINT;

Notice, that it does not work when testing by Ctrl+Enter in Flash Editor (at least in CC 2015). So, for example, you need to open .SWF separately in Flash Player.

EDIT: But it does work in Debug mode! (Ctrl+Shift+Enter)

Lazaretto answered 18/12, 2016 at 12:26 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.