如何检测AS3中拖放对象的单击

时间:2010-11-05 09:50:10

标签: actionscript-3 drag-and-drop click

我正在构建一个Flash应用程序,其上有一些可拖动的按钮,我希望它们的行为如下:

  • 点击它,ClickEvent1发生,
  • 您点击并按住按钮 可以移动它。如果你从中释放 保持,它不会触发 ClickEvent

我遇到了一个逻辑问题,即不知道用户是否只是点击或开始拖动事件。有没有人知道解决这个问题的任何逻辑?我想到了替代方案,例如放置按钮区域只能拖动或只能点击,但我在其他Flash应用程序中看到过这种功能,我想知道它是如何完成的。

2 个答案:

答案 0 :(得分:2)

另一种方法可能是mousedown和mouseup之间的间隔 - 拖动所需的时间比点击的时间长。

答案 1 :(得分:1)

有时最明显的见解只能在淋浴时进入我的大脑......

我意识到实现这一目标的最简单方法就是在首次注册MOUSE_DOWN时跟踪鼠标坐标。然后,当MOUSE_UP事件发生时,您只需检查鼠标坐标是否相同或鼠标位置是否已更改。如果鼠标未移动,则用户单击该对象,如果鼠标已移动,则表示用户拖动了对象,因此他们没有单击。