我遇到了一种不寻常的行为,我似乎无法深究。当我运行它时,如果我在 swf 区域中移动,它通常会在鼠标移动时跟踪。值得期待。
但是当我单击屏幕上的任意位置时,它会跟踪移动事件。如果我单击并拖动,它的轨迹就好像我在浏览器的 swf 区域中移动一样。
这是代码。我已经简化为它的准系统。只需将其放入 Flex 中名为“Engine”的空 AS3 项目中 - 显然没有引号。
package {
import flash.display.Sprite;
import flash.events.MouseEvent;
[SWF(width='640', height='360', backgroundColor='#888888', frameRate='31')]
public class Engine extends Sprite
{
public function Engine()
{
// Add the mouse handlers
stage.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler);
}
public function mouseMoveHandler(evt:MouseEvent):void
{
trace("move");
}
}
}
作为一种解决方法,我添加了 MOUSE_MOVE 一个 MOUSE_OVER 并在 MOUSE_OUT 上删除它。但是这种行为似乎仍然很不寻常,我有兴趣了解它为什么会发生。
谁能告诉我如何将事件限制在应用程序的实际阶段?