AS3 MouseEvent.RIGHT_MOUSE_UP 不起作用

Posted

技术标签:

【中文标题】AS3 MouseEvent.RIGHT_MOUSE_UP 不起作用【英文标题】:AS3 MouseEvent.RIGHT_MOUSE_UP doesn't work 【发布时间】:2012-08-23 22:05:34 【问题描述】:

我正在尝试创建一个布尔值,用于检查鼠标右键是否被按下。用鼠标左键这个方法有效,但是用鼠标右键布尔值保持为真,我该如何解决这个问题?

public var mDown:Boolean = false;
public var rmDown:Boolean = false;

stage.addEventListener(MouseEvent.MOUSE_DOWN, mouseHandler);
stage.addEventListener(MouseEvent.MOUSE_UP, mouseHandler);
stage.addEventListener(MouseEvent.RIGHT_MOUSE_DOWN, mouseHandler);
stage.addEventListener(MouseEvent.RIGHT_MOUSE_UP, mouseHandler);

private function mouseHandler(e:MouseEvent)
    switch(e.type)
        case MouseEvent.MOUSE_DOWN: mDown = true;
        break;
        case MouseEvent.MOUSE_UP: mDown = false;
        break;
        case MouseEvent.RIGHT_MOUSE_DOWN: rmDown = true;
        break;
        case MouseEvent.RIGHT_MOUSE_UP: rmDown = false;
    

我的 Flash 导出到 Flash Player 11.2!也许我可以用 RIGHT_CLICK 试试?

【问题讨论】:

如果在鼠标处理程序中跟踪(e.type)会发生什么? 那么它只追踪rightMouseDown 对我来说工作正常,也许尝试重新安装您正在使用的任何 IDE? 【参考方案1】:

这似乎是播放器版本问题。右键单击编译,但在 11.2 运行时静默失败。它在 11.4 中编译并运行良好。我在 Flash CS6 中进行了测试,我的播放器版本是 WIN 11,2,202,228,并且得到了与您报告的完全相同的静默失败。

然后我在 FlashDevelop 中进行了测试(将鼠标右键枚举交换为“rightMouseDown”和“rightMouseUp”,因为我的版本上的完成无法识别新的枚举事件值),并使用投影仪调试器版本 WIN 11,4,402,265 进行了测试,和鼠标右键向下和向上都工作正常。在 Win 7 机器上,它还可以在 IE、Firefox 和 Chrome 的最新插件和活动 X 播放器版本 11.4.* 中正常工作。

我不确定您使用的是什么开发环境,如果是 Flash Pro CS*,那么我不确定您如何升级播放器版本,但使用 FlashBuilder 或 FlashDevelop 应该很简单。而且我确定您已经知道您可以使用flash.system.Capabilities.version 来仔细检查您正在测试的播放器版本。当我系统中的 .swf 文件关联通常使用 11.4 时,我很惊讶地发现 CS6 仍然使用 11.2调试器。

【讨论】:

嗯,我有 Flash CS6,我正在尝试更新它,但它不起作用,所以我想我会安装 FlashBuilder。 如果您知道如何升级 CS6 使用的播放器,也许可以在这里发帖。我没办法。

以上是关于AS3 MouseEvent.RIGHT_MOUSE_UP 不起作用的主要内容,如果未能解决你的问题,请参考以下文章

ActionScript 3 AS3:使用SWFObject2和AS3传递变量

AS3 - 抽象类

AS3 转 Java

AS3:如何在 AS3 类中有效地存储平铺地图编辑器的数据

ActionScript 3 AS3 getURL / navigateToURL(如何在AS3中创建可点击链接)

AS3查询点击功能