![]() |
MOUSE_DOWN и CLICK на один объект
Столкнулся с казалось бы простой задачей. Есть мувиклип, который можно перетаскивать мышью (зажать кнопку, передвинуть курсор, отпустить). Но если по нему делать простой клик, он должен проигрывать анимацию. Проблема в том, что программа сразу реагирует на MOUSE_DOWN и вступает в фазу передвижения, и затем не реагирует на CLICK.
Ловить MOUSE_DOWN + MOUSE_UP через промежуток времени и обрабатывать как клик - как-то криво и ненадёжно. Прошу помочь, есть ли другие варианты? |
Подписаться на оба события сразу.
Добавить флаг вступления в фазу передвижения. Если он true — не реагировать на клик. Вступать в фазу передвижения не по нажатию кнопки мыши, а по какому-то признаку перемещения с нажатой кнопкой. |
Проблема в том, что на MOUSE_DOWN он должен сразу менять вид, ещё до начала движения. Иначе недалёкие юзеры могут вообще не понять, что его вообще можно двигать.
|
Цитата:
Реакция на смещения объекта, по которому еще и кликать приходится, должна иметь искусственный порог. Никто не любит не срабатывающий клик из-за едва заметного движения мышки в момент клика, что часто происходит у неопытного пользователя. P.S. И особенно актуально это на тачскрине. |
поставь задержку на startDrag, равную пол-секунде. При завершении таймера - startDrag,
добавь слушатель MOUSE_UP, который бы прерывал таймер, не давая ему завершиться. |
Не вижу разницы между CLICK и MOUSE_UP.
|
> Не вижу разницы между CLICK и MOUSE_UP.
При MOUSE_UP соответствующий ему MOUSE_DOWN может быть совершенно на другом объекте. Для клика - всегда на том же. |
Цитата:
|
| Часовой пояс GMT +4, время: 10:38. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.