Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 如何在鼠标移动事件中确定鼠标右键是否按下?_Actionscript 3_Flash - Fatal编程技术网

Actionscript 3 如何在鼠标移动事件中确定鼠标右键是否按下?

Actionscript 3 如何在鼠标移动事件中确定鼠标右键是否按下?,actionscript-3,flash,Actionscript 3,Flash,对于MOUSE\u MOVE事件,有一个buttonDown属性来指示鼠标左键当前是否已按下。但是,如何确定右键是否已按下?没有,但您可以通过在“鼠标右键按下”和“鼠标右键上升”之间设置一个标志来完成此操作。如果您以高优先级侦听捕获,它将在所有其他鼠标事件中可用 在文档类或主时间线框架1中,添加以下代码: var isRightMouseDown:Boolean = false; stage.addEventListener(MouseEvent.RIGHT_MOUSE_DOWN, globa

对于
MOUSE\u MOVE
事件,有一个
buttonDown
属性来指示鼠标左键当前是否已按下。但是,如何确定右键是否已按下?

没有,但您可以通过在“鼠标右键按下”和“鼠标右键上升”之间设置一个标志来完成此操作。如果您以高优先级侦听捕获,它将在所有其他鼠标事件中可用

在文档类或主时间线框架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
在主时间线之外访问它。如果使用文档类,请将其定义为static
public static var isRightMouseDown:Boolean
,并从应用程序中的任何位置访问它:
MyMainClassName.isRightMouseDown
。(将MyMainClassName替换为您所调用的文档类)

添加上述侦听器时,将第三个参数设置为
true
,第四个参数设置为
int.MAX\u VALUE
,将确保在应用程序中侦听同一事件之前处理此侦听器

有关事件如何工作及其阶段的更多信息,请参见:

您将鼠标右键从Flash窗口中拿出来,然后将鼠标移到Flash窗口中,怎么样?在这种情况下,您无能为力(最初的鼠标右键向下移动发生在有焦点的Flash之外)-至少据我所知。