Adobe AIR:触摸屏不会正确触发鼠标按下事件

时间:2010-03-13 00:32:09

标签: actionscript-3 user-interface air mouse touchscreen

我在as3中设计了一个游戏亭应用程序 我在Windows 7中的Sony vaio l pc(如hp的touchsmarts)上使用它 该应用程序不需要任何多点触摸手势(只有单击触摸和拖动)所以我使用鼠标事件

一切都很好(包括鼠标点击和移动事件),除了单次触摸屏幕(没有移动)不会触发鼠标。它仅在手指轻微移动后才会被触发

在应用程序外部,在我的桌面上,我看到小窗口7光标立即跳到手指放置的位置,这意味着此问题不是硬件或Windows问题,而是内部闪存应用程序如何接收“已翻译“来自操作系统的触摸鼠标事件。

例如,在Windows Solitaire游戏中,对屏幕的简单触摸会立即突出显示已触摸的卡片。 在我的应用程序中,只有当我触摸它并且稍微移动我的手指时,按钮才会变为向下状态(单击事件 - 向下和向上 - 被触发正常)

MOUSE_DOWN事件不应该像新的touchevent类中的TOUCH_BEGIN那样触发吗?

任何想法?

3 个答案:

答案 0 :(得分:3)

我遇到了同样的问题。

Multitouch.inputMode属性设置为MultitouchInputMode.TOUCH_POINT(默认值为MultitouchInputMode.GESTURE)似乎会在用户触摸屏幕时调度MOUSE_DOWN事件,而不会触及移动,触摸和释放。

答案 1 :(得分:0)

如果光标在触摸时移动,那么我认为操作系统只是将其注册为MOUSE_MOVE而不是MOUSE_DOWN。由于它是一个触摸屏,你可以只考虑MOUSE_MOVE一次点击,因为用户可能实际上并没有拖动他们的手指创建一个真正的MOUSE_MOVE事件。

好吧,如果他们实际上正在拖动他们的手指,那么你可以假设一个MOUSE_MOVE突然将光标放在一个按钮上(之前没有MOUSE_MOVE,即拖动),这是一个MOUSE_DOWN。

答案 2 :(得分:0)

刚买了一个新的触摸屏,又遇到了问题。

因此解决方案是通过在代码中的任意位置写入Multitouch.inputModeMultitouchInputMode.TOUCH_POINT

Multitouch.inputMode = MultitouchInputMode.TOUCH_POINT;

请注意,在Flash编辑器中Ctrl+Enter 进行测试无效(至少在CC 2015中)。因此,例如,您需要在Flash Player中单独打开.SWF

编辑:但它在调试模式下工作! (Ctrl+Shift+Enter