AS3关闭contextMenu

时间:2011-09-19 21:11:18

标签: flash actionscript-3 contextmenu

是否可以从ActionScript 3中关闭contextMenu(或隐藏它)?

我需要运行一个eventlistener,一旦按下正确的Mousebutton,就会发生一些事情。

myContextMenu.addEventListener(ContextMenuEvent.MENU_SELECT, menuSelectHandler);
function menuSelectHandler(e:ContextMenuEvent):void{
    /**
     * close the context menu and do something
     */
}

要么不显示上下文菜单,要么关闭它。

知道我该怎么做吗?


我试过了:

dispatchEvent(new ContextMenuEvent(ContextMenuEvent.MENU_ITEM_SELECT));

但是我没有启动我放在第一个菜单项上的eventListener。 当选择ContextMenu中的项目时,是否知道如何调度启动的事件?

2 个答案:

答案 0 :(得分:1)

您无法关闭,隐藏或禁用Flash Player中的右键单击,您可以隐藏一些选项。

但是有一个技巧,您可以使用JS捕获右键并使用ExternalInterface在Flash应用程序内模拟您自己的右键单击。

你可以在这里看到一些例子:
http://www.lordofduct.com/blog/?p=318
http://www.uza.lt/2007/08/19/solved-right-click-in-as3/
http://blog.another-d-mention.ro/programming/right-click-and-custom-context-menu-in-flash-flex/


这个问题是浏览器的兼容性,你还需要更改wmode(在某些情况下会有更多问题,你可以搜索它)。
以下是一些兼容性的统计数据:
http://code.google.com/p/custom-context-menu/wiki/BrowserSupport

答案 1 :(得分:0)

实际上你无法对它做任何事情。您只能将上下文菜单的大小减少到很少的条目,但需要显示一些内容。原因是Flash并不真正支持鼠标的右键单击按钮,而只是为ContextMenu提供内容。你有没有看到任何Flash应用程序在右键单击后没有显示上下文菜单?