我正在尝试创建一个布尔值,它检查是否按下了鼠标右键。使用鼠标左键,此方法可以正常工作,但使用鼠标右键,布尔值保持为真,我该如何解决?
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尝试一下?
答案 0 :(得分:3)
这似乎是玩家版本的问题。右键单击编译,但在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文件关联正常时,我很惊讶地发现CS6仍在使用11.2 11.4调试器。