ContextMenu 类

可用性

Flash Player 7。

说明

ContextMenu 类提供对 Flash Player 上下文菜单项的运行时控制,当用户在 Flash Player 中右击 (Windows) 或按住 Control 键单击 (Macintosh) 时,上下文菜单将出现。您可以使用 ContextMenu 类的方法和属性添加自定义菜单项,控制内置菜单项的显示(例如,“放大”和“打印”),或者创建菜单的副本。

您可以将 ContextMenu 对象附加到特定的按钮、影片剪辑或文本字段,也可以附加到整个影片级别。这可以使用 Button、MovieClip 或 TextField 类的 menu 属性来实现。有关 menu 属性的更多信息,请参见 Button.menuMovieClip.menuTextField.menu

若要向 ContextMenu 对象添加新的菜单项,请创建一个 ContextMenuItem 对象,然后将该对象添加到 ContextMenu.customItems 数组。有关创建上下文菜单项的更多信息,请参见 ContextMenuItem 类条目。

Flash Player 具有三种类型的上下文菜单:标准菜单(当您在 Flash Player 中右击时出现)、编辑菜单(当您在可选择或可编辑的文本字段上右击时出现)和错误菜单(当 SWF 文件未能加载到 Flash Player 中时出现)。只有标准菜单和编辑菜单才能使用 ContextMenu 类进行修改。

自定义菜单项始终出现在 Flash Player 上下文菜单的顶部,并位于所有可见内置菜单项之上;内置菜单项和自定义菜单项之间由一个分隔条加以分隔。一个上下文菜单包含的自定义菜单项不能超过 15 个。

必须在使用构造函数 new ContextMenu() 创建 ContextMenu 对象之后,才能调用它的方法。

ContextMenu 类的方法概要

方法

说明

ContextMenu.copy()

返回指定 ContextMenu 对象的副本。

ContextMenu.hideBuiltInItems()

在 Flash Player 上下文菜单中隐藏大多数内置项。

ContextMenu 类的属性概要

属性

说明

ContextMenu.builtInItems

其成员与内置上下文菜单项相对应的对象。

ContextMenu.customItems

默认情况下未定义的数组,它包含 ContextMenuItem 对象。

ContextMenu 类的事件处理函数概要

属性

说明

ContextMenu.onSelect

在显示菜单之前调用。

ContextMenu 类的构造函数

可用性

Flash Player 7。

用法

new ContextMenu ([callBackFunction])

参数

callBackFunction 对函数的引用,该函数在用户右击或按住 Control 键单击时,但在菜单显示之前被调用。此参数是可选的。

返回

无。

说明

构造函数;创建新的 ContextMenu 对象。或者,您可以在创建该对象时指定事件处理函数的标识符。指定的函数在用户调用上下文菜单时,但在菜单实际显示之前 被调用。在根据应用程序状态或者根据用户右击或按住 Control 键单击的对象类型(影片剪辑、文本字段或按钮)自定义菜单内容时,此函数非常有用。(有关创建事件处理函数的示例,请参见
ContextMenu.onSelect。)

示例

以下示例隐藏上下文菜单中的所有内置对象。(但是,由于不能禁用“设置”和“关于”菜单项,所以它们仍会出现。)

var newMenu = new ContextMenu();
newMenu.hideBuiltInItems();
_root.menu = newMenu;

在此示例中,指定的事件处理函数 menuHandler 根据名为 showItem 的布尔型变量的值启用或禁用自定义菜单项(使用 ContextMenu.customItems 数组)。如果为 false,则禁用自定义菜单项;否则,将其启用。

var showItem = false; // 将其更改为 true 以查看其效果
my_cm = new ContextMenu(menuHandler);
my_cm.customItems.push(new ContextMenuItem("Hello", itemHandler));
function menuHandler(obj, menuObj) {
  if (showItem == false) {
    menuObj.customItems[0].enabled = false;
  } else {
    menuObj.customItems[0].enabled = true;
  }
}
function itemHandler(obj, item) {
}
_root.menu = my_cm;

另请参见

Button.menuContextMenu.onSelectContextMenu.customItems
ContextMenu.hideBuiltInItems()MovieClip.menuTextField.menu