Adobe AIR: сенсорный экран неправильно вызывает событие нажатия мыши - PullRequest
5 голосов
/ 13 марта 2010

Я разработал приложение для игрового киоска в as3 я использую его на Sony Vaio L ПК (как TouchSmarts HP) в Windows 7 приложению не требуются мультитач-жесты (только одно касание и перетаскивание), поэтому я использую события мыши

все хорошо (включая события щелчка и перемещения мыши), за исключением того, что одно касание к экрану (без движения) не приводит к срабатыванию мыши. стреляет только после небольшого движения пальца

вне приложения, на моем рабочем столе, я вижу, что маленький курсор Windows 7 сразу же перемещается туда, куда помещается палец, означая, что эта проблема не связана с аппаратным обеспечением или Windows, а скорее с тем, как внутренне приложение Flash получает «события касания мыши из операционной системы.

например, в игре «Пасьянс Windows», простое прикосновение к экрану немедленно выделяет карту, к которой прикоснулись. в моем приложении кнопка будет переведена в состояние «вниз», только если я коснусь ее, а также слегка проведу пальцем (события щелчка - вниз и вверх - запускаются нормально)

не должно ли событие MOUSE_DOWN вызвать точно так же, как TOUCH_BEGIN в новом классе touchevent?

есть идеи?

Ответы [ 3 ]

3 голосов
/ 24 января 2012

Я столкнулся с той же проблемой.

Установка свойства Multitouch.inputMode на MultitouchInputMode.TOUCH_POINT (значение по умолчанию MultitouchInputMode.GESTURE) появляется для отправки события MOUSE_DOWN, когда пользователь касается экрана, а не когда он касается и перемещается или касается и отпускает.

0 голосов
/ 18 декабря 2016

Только что купил новый сенсорный экран и снова столкнулся с проблемой.

Таким образом, решение состоит в том, чтобы установить Multitouch.inputMode в MultitouchInputMode.TOUCH_POINT, написав в любом месте вашего кода:

Multitouch.inputMode = MultitouchInputMode.TOUCH_POINT;

Обратите внимание, что не работает при тестировании Ctrl+Enter в Flash Editor (по крайней мере, в CC 2015). Так, например, вам нужно открыть .SWF отдельно во Flash Player.

РЕДАКТИРОВАТЬ: Но он работает в режиме отладки! (Ctrl+Shift+Enter)

0 голосов
/ 16 августа 2010

Если курсор перемещается при касании, тогда я предполагаю, что ОС просто регистрирует это как MOUSE_MOVE, а не MOUSE_DOWN. Поскольку это сенсорный экран, вы можете просто считать MOUSE_MOVE щелчком, поскольку пользователь, вероятно, на самом деле не таскает пальцем вокруг себя создание реального события MOUSE_MOVE.

Что ж, если они на самом деле тянут свой палец за вещами, то вы можете предположить, что MOUSE_MOVE внезапно поместит курсор на кнопку (без предшествующего MOUSE_MOVE, т.е. перетаскивания), это MOUSE_DOWN.

...