在flex中右键单击上下文菜单中隐藏默认选项

时间:2009-10-16 06:42:00

标签: flex actionscript-3

我正在开发一个flex应用程序,我想添加一个上下文菜单。我用这段代码得到了它:

var myMenu:ContextMenu = new ContextMenu();
myMenu.hideBuiltInItems();
var defaultItems:ContextMenuBuiltInItems = myMenu.builtInItems;
defaultItems.print = false;

var item:ContextMenuItem = new ContextMenuItem("Go to google");
myMenu.customItems.push(item);
item.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, menuItemSelectHandler);

this.contextMenu = myMenu;

但我有一个问题。菜单显示四个默认选项(设置,关于闪光...)我想隐藏它们。使用defaultItems.print = false;我隐藏了打印选项,但我不知道如何隐藏其他选项。 有谁知道怎么做? 感谢。

2 个答案:

答案 0 :(得分:14)

有一种技术可以隐藏Flash中的上下文菜单中的设置,闪光灯等。高级概念是在HTML容器中使用JavaScript来禁用右键单击SWF顶部。捕获事件,然后使用ExternalInterface API将其转发到Flex应用程序,该API允许您从JavaScript调用Flex函数。调用Flex应用程序中定义的函数,以显示仅包含所需菜单项的自定义ContextMenu。这会回避Flash / Flex中的硬连线行为,鼠标右键单击会导致ContextMenu显示设置,关于这些内容。

详细演练可在此link.

找到

答案 1 :(得分:9)

正如ContextMenu的参考所说,

  

您无法删除“设置”菜单   上下文菜单中的项目。该   设置菜单项是必需的   Flash让用户可以访问   影响隐私和设置的设置   存储在他们的计算机上你也是   无法删除“关于”菜单项,   这是必需的,以便用户可以   找出什么版本的Flash Player   他们正在使用。

因此,您只需使用SettingsAbout项。有关其他默认项目,请参阅ContextMenuBuiltInItems的参考。