我正在开发一个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;我隐藏了打印选项,但我不知道如何隐藏其他选项。 有谁知道怎么做? 感谢。
答案 0 :(得分:14)
有一种技术可以隐藏Flash中的上下文菜单中的设置,闪光灯等。高级概念是在HTML容器中使用JavaScript来禁用右键单击SWF顶部。捕获事件,然后使用ExternalInterface API将其转发到Flex应用程序,该API允许您从JavaScript调用Flex函数。调用Flex应用程序中定义的函数,以显示仅包含所需菜单项的自定义ContextMenu。这会回避Flash / Flex中的硬连线行为,鼠标右键单击会导致ContextMenu显示设置,关于这些内容。
详细演练可在此link.
找到答案 1 :(得分:9)
正如ContextMenu的参考所说,
您无法删除“设置”菜单 上下文菜单中的项目。该 设置菜单项是必需的 Flash让用户可以访问 影响隐私和设置的设置 存储在他们的计算机上你也是 无法删除“关于”菜单项, 这是必需的,以便用户可以 找出什么版本的Flash Player 他们正在使用。
因此,您只需使用Settings
和About
项。有关其他默认项目,请参阅ContextMenuBuiltInItems的参考。