【问题标题】:Hide default options in right click context menu in flex在flex的右键单击上下文菜单中隐藏默认选项
【发布时间】:2009-10-16 06:41:59
【问题描述】:

我正在开发一个 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;我隐藏了打印选项,但我不知道如何隐藏其他选项。 有人知道该怎么做吗? 谢谢。

【问题讨论】:

  • Kezem,我在使用 Flex 应用程序替换 Java Swing 应用程序时也遇到了这个问题。上下文菜单中公开了一些功能,设置内容让我们的用户感到困惑。我在网上做了一些挖掘,找到了我下面描述的解决方案。

标签: apache-flex actionscript-3


【解决方案1】:

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

可以在link.找到详细的演练

【讨论】:

    【解决方案2】:

    正如ContextMenu 的参考所说,

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

    因此,您只需要使用 Settings 和 About 项目即可。对于其他默认项,请参阅ContextMenuBuiltInItems 的参考。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-20
      • 1970-01-01
      • 2020-06-15
      • 2013-07-21
      • 1970-01-01
      • 2016-03-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多