![]() |
Как разобрать события мыши?
Клиент попросил сделать разную реакцию объекта на мышиные события. Стал тестировать CLICK, MOUSE_DOWN, MOUSE_UP, DOUBLE_CLICK. Сначала срабатывает мышь вниз, затем мышь вверх после этого клик. Если после первого клика коротко по времени сделать второй клик то срабатывает еще раз вниз, вверх и двойной клик уже вместо обычного клика. При этом можно нажать кнопку и ждать полчаса а потом отпустить ее и сделать сразу второй клик тоже будет событие двойной клик.
У меня задача при нажатии на кнопку делать плавное увеличение параметра. Когда кнопку отпускают прекратить увеличение. При простом клике делать увеличение параметра скачками. И есть обект который надо выделять кликом и при двойном клике активировать. Пока кроме как через секундомер который будет проверять как давно кнопку на мыше нажали, когда последний клик был и т.п. не могу придумать как отличать одно событие от другого. Приходилось кому то это делать? какие приемы использовали поделитесь:umnik2: |
Я думаю что ваш подход он и есть правельный.
|
все еще нужна помощь по этому вопросу? подход не правильный через секундомер геморрой будет. Лучше ентер_фрейм использовать.
Могу поподробнее обьяснить если надо |
Будьте любезны) я через секундомер делал)
Скорость между кадрами не постоянная величина, а вот время по getTimer() дает достаточно достоверное значение между событиями. Я воспользовался этим способом |
эх, я перепутал, сори. я не так понял вопрос. ага, таймер лучше подходит для определение клик это или маус_вниз.
|
Эх а я так надеялся на красивое решение)
|
Нашел решение по данной теме. Все гениальное оказалось просто.
Решаем следующую задачу. Есть карта. Когда на ней нажимают кнопку и начинают двигать мышь необходимо двигать карту. На самой карте находятся объекты которые также реагируют на клик по ним мышкой и могут выполнять действие от выделения до обновления карты, это уже зависит от объекта. Вот какое решение получилось в итоге: Заводим значение минимальноеДопустимоеСмещение - это чтобы не запускать движение карты когда мышка непроизвольно дернулась после нажатия, и логическую флагДвижения. Объекты на карте отрабатывают свои клики как положено. Далее на самой карте фиксируем два обработчика для событий MOUSE_DOWN, и CLICK причем последний в фазе Capture Код AS3:
Код AS3:
При клике по карте в фазе Capture отлавливаем событие и если было зафиксировано движение (флагДвижения в истине) то отменяем распространение клика на потомков Код AS3:
|
| Часовой пояс GMT +4, время: 00:17. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.