Как обнаружить щелчок по объекту перетаскивания в AS3 - PullRequest
1 голос
/ 05 ноября 2010

Я создаю флэш-приложение, на котором есть несколько перетаскиваемых кнопок, и я хочу, чтобы они вели себя так:

  • Вы нажимаете на нее, происходит ClickEvent1,
  • Вы нажимаете и удерживаете кнопку, вы может переместить это. Если вы освободите от держать, это не вызывает ClickEvent

Я сталкиваюсь с проблемой логики, состоящей в том, чтобы не знать, просто ли пользователь щелкает или запускает событие перетаскивания. Кто-нибудь знает какую-либо логику, чтобы обойти эту проблему? Я думал об альтернативах, таких как размещение областей кнопки, которые можно перетаскивать или только щелкать, но я видел этот тип функциональности в других приложениях Flash, и мне интересно, как это достигается.

Ответы [ 2 ]

2 голосов
/ 05 ноября 2010

Другим подходом может быть интервал между mousedown и mouseup - перетаскивание займет больше времени, чем клик.

1 голос
/ 05 ноября 2010

Иногда самые очевидные идеи проникают в мой мозг только в душе ...

Я понял, что самый простой способ сделать это - просто отслеживать координаты мыши при первой регистрации MOUSE_DOWN. Затем, когда происходит событие MOUSE_UP, вы просто проверяете, совпадают ли координаты мыши или изменилось ли положение мыши. Если мышь не сдвинулась, то пользователь щелкает объект, если мышь переместилась, то вы знаете, что пользователь перетянул объект, чтобы он не щелкнул.

...