如何在MOUSE_MOVE事件中判断鼠标右键是否按下?

How to determine if the right mouse button is down or not in a MOUSE_MOVE event?

对于 MOUSE_MOVE 事件,documentation says 有一个 buttonDown 属性 来指示鼠标左键当前是否按下。但是如何判断右键是否按下呢?

没有,但您可以通过在鼠标右键按下和鼠标右键弹起之间设置一个标志来实现。如果您以高优先级侦听捕获,它将在所有其他鼠标事件中可用。

在您的文档 class 或主时间轴框架 1 中,添加以下代码:

var isRightMouseDown:Boolean = false;

stage.addEventListener(MouseEvent.RIGHT_MOUSE_DOWN, globalMouseDown,true,int.MAX_VALUE)
function globalMouseDown(e:MouseEvent):void {
    isRightMouseDown = true;
}

stage.addEventListener(MouseEvent.RIGHT_MOUSE_UP,globalMouseUp,true,int.MAX_VALUE)
function globalMouseUp(e:MouseEvent):void {
    isRightMouseUp = false;
}

现在您有了一个可以在鼠标移动侦听器中访问的变量。如果使用时间线代码,请通过 MovieClip(root).isRightMouseDown 在主时间线之外访问它。如果使用文档 class,请将其定义为静态 public static var isRightMouseDown:Boolean 并从您应用中的任何地方像这样访问它:MyMainClassName.isRightMouseDown。 (将 MyMainClassName 替换为您对文档的命名 class)

当您在上面添加侦听器时,将第三个参数设置为 true 并将第四个参数设置为 int.MAX_VALUE 将确保在您的应用程序中任何其他侦听相同事件之前处理此侦听器.

有关事件如何运作及其阶段的更多信息,请参阅: http://www.adobe.com/devnet/actionscript/articles/event_handling_as3.html