Flash Player 7。
ContextMenu 类提供对 Flash Player 上下文菜单项的运行时控制,当用户在 Flash Player 中右击 (Windows) 或按住 Control 键单击 (Macintosh) 时,上下文菜单将出现。您可以使用 ContextMenu 类的方法和属性添加自定义菜单项,控制内置菜单项的显示(例如,“放大”和“打印”),或者创建菜单的副本。
您可以将 ContextMenu 对象附加到特定的按钮、影片剪辑或文本字段,也可以附加到整个影片级别。这可以使用 Button、MovieClip 或 TextField 类的 menu
属性来实现。有关 menu
属性的更多信息,请参见 Button.menu
、MovieClip.menu
和 TextField.menu
。
若要向 ContextMenu 对象添加新的菜单项,请创建一个 ContextMenuItem 对象,然后将该对象添加到 ContextMenu.customItems
数组。有关创建上下文菜单项的更多信息,请参见 ContextMenuItem 类条目。
Flash Player 具有三种类型的上下文菜单:标准菜单(当您在 Flash Player 中右击时出现)、编辑菜单(当您在可选择或可编辑的文本字段上右击时出现)和错误菜单(当 SWF 文件未能加载到 Flash Player 中时出现)。只有标准菜单和编辑菜单才能使用 ContextMenu 类进行修改。
自定义菜单项始终出现在 Flash Player 上下文菜单的顶部,并位于所有可见内置菜单项之上;内置菜单项和自定义菜单项之间由一个分隔条加以分隔。一个上下文菜单包含的自定义菜单项不能超过 15 个。
必须在使用构造函数 new ContextMenu()
创建 ContextMenu 对象之后,才能调用它的方法。
方法 |
说明 |
---|---|
返回指定 ContextMenu 对象的副本。 |
|
在 Flash Player 上下文菜单中隐藏大多数内置项。 |
属性 |
说明 |
---|---|
其成员与内置上下文菜单项相对应的对象。 |
|
默认情况下未定义的数组,它包含 ContextMenuItem 对象。 |
属性 |
说明 |
---|---|
在显示菜单之前调用。 |
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.menu、ContextMenu.onSelect、ContextMenu.customItems、
ContextMenu.hideBuiltInItems()、MovieClip.menu、TextField.menu