【发布时间】:2015-05-01 18:27:36
【问题描述】:
对于MOUSE_MOVE 事件,documentation says 有一个buttonDown 属性来指示鼠标左键当前是否按下。但是如何确定右键是否按下?
【问题讨论】:
标签: actionscript-3 flash
对于MOUSE_MOVE 事件,documentation says 有一个buttonDown 属性来指示鼠标左键当前是否按下。但是如何确定右键是否按下?
【问题讨论】:
标签: actionscript-3 flash
没有,但是您可以通过在鼠标右键向下和鼠标右键向上之间设置一个标志来执行此操作。如果您以高优先级监听捕获,它将在所有其他鼠标事件中可用。
在您的文档类或主时间线框架 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 在主时间线之外访问它。如果使用文档类,请将其定义为静态 public static var isRightMouseDown:Boolean 并从应用程序中的任何位置访问它:MyMainClassName.isRightMouseDown。 (将 MyMainClassName 替换为您所称的文档类)
当您添加上面的侦听器时,将第三个参数设置为true,将第四个参数设置为int.MAX_VALUE 将确保在您的应用程序中侦听同一事件的任何其他侦听器之前处理此侦听器。
有关事件如何工作及其阶段的更多信息,请参阅以下内容: http://www.adobe.com/devnet/actionscript/articles/event_handling_as3.html
【讨论】: