2

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

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?

4

1 回答 1

3

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

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

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

于 2012-08-31T12:41:34.197 回答