Actionscript 3 鼠标在舞台外点击
我是Flash项目中的拖动游戏场景(鼠标向下-开始拖动,鼠标向上-停止拖动)。若我将鼠标移到舞台外,点击任何对象(按钮)一次都不起作用。单击一次后,其他单击可以正常工作。怎么了 更新:跟踪日志显示,有mouseOver、mouseDown、mouseUp、mouseOut等事件是调度,但没有单击Actionscript 3 鼠标在舞台外点击,actionscript-3,flash,Actionscript 3,Flash,我是Flash项目中的拖动游戏场景(鼠标向下-开始拖动,鼠标向上-停止拖动)。若我将鼠标移到舞台外,点击任何对象(按钮)一次都不起作用。单击一次后,其他单击可以正常工作。怎么了 更新:跟踪日志显示,有mouseOver、mouseDown、mouseUp、mouseOut等事件是调度,但没有单击 更新:项目中存在拖动后第一次单击的消音器。有必要消除某些游戏对象(dispath click)上的结束拖拽情况。很抱歉谢谢大家的回答。离开舞台时,你可能会失去注意力。尝试使用(Event.MOUSE\u
更新:项目中存在拖动后第一次单击的消音器。有必要消除某些游戏对象(dispath click)上的结束拖拽情况。很抱歉谢谢大家的回答。离开舞台时,你可能会失去注意力。尝试使用
(Event.MOUSE\u LEAVE)
将鼠标“强制”向上移动。类似以下内容:
private var _draggedItem:Sprite;
myDisplayObject.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
private function mouseDownHandler(event:MouseEvent):void {
_draggedItem = event.currentTarget as Sprite;
_draggedItem.startDrag();
_draggedItem.addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);
stage.addEventListener(Event.MOUSE_LEAVE, stageMouseOutHandler);
}
private function stopDragCurrentItem():void {
if (_draggedItem) {
_draggedItem.stopDrag();
_draggedItem.removeEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);
if (stage) {
stage.removeEventListener(Event.MOUSE_LEAVE, stageMouseOutHandler);
}
_draggedItem = null;
}
}
private function mouseUpHandler(event:MouseEvent):void {
stopDragCurrentItem();
}
private function stageMouseOutHandler(event:Event):void {
trace("stage out!")
stopDragCurrentItem();
}
更新:
关于失去焦点,您可以在html中嵌入flash的地方执行以下操作:
<object classid="..." codebase="...." width=550 height=400
name="myMovie" onmouseover="window.document.myMovie.focus();">
虽然我还没有测试过。b你是说将鼠标上升事件分派到鼠标离开处理程序中?是的。恐怕我得调查一下才能提供更多的信息,但是类似的东西。谢谢你的代码。它已经实现了。这并不能解决在舞台外使用鼠标后第一次单击的问题。您可能应该将焦点返回到html页面上的flash电影。类似这样的内容:。所以在javascript中,您可以监听mouseover事件(当鼠标在flash电影容器上时),并手动设置焦点。