我在as3中设计了一个游戏亭应用程序 我在Windows 7中的Sony vaio l pc(如hp的touchsmarts)上使用它 该应用程序不需要任何多点触摸手势(只有单击触摸和拖动)所以我使用鼠标事件
一切都很好(包括鼠标点击和移动事件),除了单次触摸屏幕(没有移动)不会触发鼠标。它仅在手指轻微移动后才会被触发
在应用程序外部,在我的桌面上,我看到小窗口7光标立即跳到手指放置的位置,这意味着此问题不是硬件或Windows问题,而是内部闪存应用程序如何接收“已翻译“来自操作系统的触摸鼠标事件。
例如,在Windows Solitaire游戏中,对屏幕的简单触摸会立即突出显示已触摸的卡片。 在我的应用程序中,只有当我触摸它并且稍微移动我的手指时,按钮才会变为向下状态(单击事件 - 向下和向上 - 被触发正常)MOUSE_DOWN事件不应该像新的touchevent类中的TOUCH_BEGIN那样触发吗?
任何想法?
答案 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.inputMode
到MultitouchInputMode.TOUCH_POINT
:
Multitouch.inputMode = MultitouchInputMode.TOUCH_POINT;
请注意,在Flash编辑器中Ctrl+Enter
进行测试时无效(至少在CC 2015中)。因此,例如,您需要在Flash Player中单独打开.SWF
。
编辑:但它在调试模式下工作! (Ctrl+Shift+Enter
)