Flash错误AS3

时间:2011-05-07 00:13:29

标签: flash actionscript-3

MOUSE_UP的addEventListener不起作用 - >谁知道什么是错的?如果我删除了enter_frame行

,它可以工作

1 个答案:

答案 0 :(得分:1)

当您进行拖放操作时,这是Flash中非常常见的模式。基本上发生的事情是,如果你从鼠标光标下移出目标(或者如果你从目标上方移出鼠标光标),那么MouseUp事件永远不会触发。

最简单的解决方案,也就是我经常使用的解决方案,是更改MouseUp事件侦听器的目标。而不是听你试图拖动的项目,而是在舞台上听。

替代方案,在某些情况下,这是期望的行为,是在目标项上侦听MouseEvent.MOUSE_UP和MouseEvent.MOUSE_OUT。这样,如果鼠标离开该项目,您可以立即停止拖动。

draggableItem.addEventListener(MouseEvent.MOUSE_DOWN, startDragging);

function startDragging(e:MouseEvent):void {
stage.addEventListener(MouseEvent.MOUSE_UP, stopDragging);
// OR:
draggableItem.addEventListener(MouseEvent.MOUSE_OUT, stopDragging);
draggableItem.addEventListener(MouseEvent.MOUSE_UP, stopDragging);

draggableItem.startDrag() // etc
}

这有意义吗?如果有帮助,请告诉我!