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传递变量