|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|
|||||
Регистрация: Mar 2012
Адрес: г.Новосибирск
Сообщений: 381
|
Хорошая реализация CLICK + MOUSE_DOWN
К сожаления не нашел аналога работы виндосовского клика + mouseDown , Нашел только реализации типа
Добавляем таймер на проверку клика, если время между mouseDown и Up меньше скольки то там миллисекунд, то обрабатываем клик. Но по идее клик - это когда сработал маусдаун, далее(возможно) произошло незначительное смещение курсора(человеческий фактор), прошло сколько угодно времени (может даже несколько секунд, все кликают по разному) потом сработал маусАп, - далее обрабатываем клик. Но как по правильному будет словить это вот незначительное смещение курсора, и правильно обработать mouseDown + mouseMove + mouseUp и click |
|
|||||
Регистрация: Mar 2012
Адрес: г.Новосибирск
Сообщений: 381
|
как у меня сейчас:
есть переменная ключ - isClicked, по mouseDown ставлю ее true, в хэндлере mouseMove - ставлю ее false в хэндлере mouseUp - проблема такая - иногда , после маусдаун курсор немного сдвигается , когда жмешь на кнопку мыши, соответственно выполняется хэндлер mouseMove, и переменная ставится в false, и соответственно функция onClick() не выполняется(то есть клика не происходит ), что напрягает, нужно ее как-то обойти. |
|
|||||
Регистрация: Mar 2012
Адрес: г.Новосибирск
Сообщений: 381
|
ну я писал что находил варианты как реализовать такой механизм, но там просто ставился таймер между маусдаун и маусап, если он маленький - значит это клик, а в виндоусе между маусдауном и апом может пройти хоть 10 минут(мало ли на мой объект будет кликать дама бальзаковского возраста), и он обработает его как клик.
По поводу изменения координат, мой объект - это шкала(по маусмуву она должна перемещаться, но также на ней можно кликать, чтобы выбрать значение), если допустим я ее перемещу влево а потом верну на те же координаты, тогда получится что будет обрабатываться клик, но драг то был. А, ну хотя можно хранить максимальное смещение, и его проверять.. |
|
|||||
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,879
Записей в блоге: 7
|
Цитата:
|
|
|||||
Тогда можно сохранять mouseX и mouseY при нажатии в обработчике mouseDown, а в mouseMove проверять смещение курсора относительно этих сохраненных данных.
|
|
|||||
https://github.com/fljot/Gestouch
quickstart: var tap:TapGesture = new TapGesture(yourBar); tap.addEventListener(GestureEvent.GESTURE_RECOGNIZED, onTap); //tap.slop = 0;// например, так можно сдвигать только на 0 пикселей. по-умолчанию там подходящее для тачкринов значение //tap.maxTapDuration = 2000;//например, так после 2 секунд "клика" уже не будет. по-умолчанию 1500мс var pan:TapGesture = new PanGesture(yourBar); pan.addEventListener(GestureEvent.GESTURE_BEGAN, onPan); pan.addEventListener(GestureEvent.GESTURE_CHANGED, onPan); ... onPan(event:GestureEvent):void { pan.offsetX/Y } Там сейчас скорее всего есть одна беда с памятью, так что для хорошего удаления лучше использовать dispose() на жестах. |
|
|||||
.
|
Цитата:
|
|
|||||
Цитата:
|
Часовой пояс GMT +4, время: 22:15. |
|
« Предыдущая тема | Следующая тема » |
|
|