MOUSE_UP的addEventListener不起作用 - >谁知道什么是错的?如果我删除了enter_frame行
,它可以工作答案 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
}
这有意义吗?如果有帮助,请告诉我!