Tim*_*Tim 2 mouse events drag-and-drop actionscript-3
在任何情况下Flash应用程序都可以在MouseEvent.MOUSE_DOWN没有MouseEvent.MOUSE_UP介于两者之间的情况下收到两个吗?
在我的ActionScript 3应用程序中,我想跟踪用户拖动精灵.我的计划是监听a MouseEvent.MOUSE_DOWN,启动一个无限期重复的计时器,记录鼠标位置,然后停止计时器MouseEvent.MOUSE_UP.这是一个好计划吗?
没有一个up事件,你将得到两个下来的事件.
拖放的更好解决方案可能是监听MOUSE_MOVE事件和事件处理程序检查buttonDown属性.如果按钮在移动时关闭,则为真,否则为假.
编辑:对于舞台,即使您在闪光窗口外释放按钮,也会触发向上事件.因此,对于这个阶段可以工作,但仍然不是定时器的使用MOUSE_MOVE与buttonDown比较好看我.您可以使用以下代码进行检查:
public class StageEventTest extends Sprite
{
public function StageEventTest()
{
stage.addEventListener(MouseEvent.MOUSE_DOWN, onDown);
stage.addEventListener(MouseEvent.MOUSE_UP, onUp);
stage.addEventListener(MouseEvent.MOUSE_MOVE, onMove);
}
private function onDown(evt:MouseEvent):void {
trace("down");
}
private function onUp(evt:MouseEvent):void {
trace("up");
}
private function onMove(evt:MouseEvent):void {
trace("move", evt.buttonDown);
}
}
Run Code Online (Sandbox Code Playgroud)