包 | flash.ui |
类 | public final class ContextMenuItem |
继承 | ContextMenuItem NativeMenuItem EventDispatcher Object |
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9 |
customItems
数组。
利用 ContextMenuItem 类的属性,您可以启用或禁用特定菜单项,也可以显示或隐藏菜单项。
可以为menuItemSelect
事件编写事件处理函数,以便在用户选择菜单项时为其添加功能。
自定义菜单项出现在上下文菜单的顶部,并位于所有内置菜单项之上。有一条分隔条将自定义菜单项与内置菜单项分开。在 AIR 中,不存在内置菜单项,且下列限制不适用于 AIR 应用程序沙箱中的内容。
限制:
- 向上下文菜单添加的自定义菜单项不得超过 15 个。
- 每个标题至少必须包含一个可见字符。
- 控制字符、换行符和其他空白字符将被忽略。
- 任何标题的长度都不能超过 100 个字符。
- 与任何内置菜单项或其他自定义菜单项相同的标题将被忽略,不管匹配的菜单项是否可见。菜单标题在与内置标题或现有自定义标题比较时将不考虑大小写、标点符号或空白。
- 不允许使用以下标题,但可以将这些词与其他词结合使用以形成自定义标题(例如,尽管不允许使用“粘贴”,但却允许使用“粘贴感觉良好”):
Save Zoom In Zoom Out 100% Show All Quality Play Loop Rewind Forward Back Movie not loaded About Print Show Redraw Regions Debugger Undo Cut Copy Paste Delete Select All Open Open in new window Copy link
- 不管是本身还是与其他词结合使用,以下任何一个词都不能出现在自定义标题中:
Adobe Macromedia Flash Player Settings
注意:如果播放器运行在非英语系统上,标题字符串将同时与英语列表和对应的本地化字符串进行比较。
相关 API 元素
公共属性
属性 | 由以下参数定义 | ||
---|---|---|---|
caption : String
指定上下文菜单中显示的菜单项标题(文本)。 | ContextMenuItem | ||
checked : Boolean
控制此菜单项是否显示复选标记。 | NativeMenuItem | ||
constructor : Object
对类对象或给定对象实例的构造函数的引用。 | Object | ||
data : Object
与此菜单项关联的任意数据对象。 | NativeMenuItem | ||
enabled : Boolean
控制是否启用此菜单项。 | NativeMenuItem | ||
isSeparator : Boolean [只读]
报告此项目是否为菜单分隔线。 | NativeMenuItem | ||
keyEquivalent : String
此菜单项的等效键。 | NativeMenuItem | ||
keyEquivalentModifiers : Array
等效功能键的键控代码数组。 | NativeMenuItem | ||
label : String
此菜单项的显示字符串。 | NativeMenuItem | ||
menu : NativeMenu [只读]
包含此项目的菜单。 | NativeMenuItem | ||
mnemonicIndex : int
菜单项标签中的助记键字符的位置。 | NativeMenuItem | ||
name : String
此菜单项的名称。 | NativeMenuItem | ||
separatorBefore : Boolean
表示指定的菜单项上方是否显示分隔条。 | ContextMenuItem | ||
submenu : NativeMenu
与此菜单项关联的子菜单。 | NativeMenuItem | ||
visible : Boolean
表示在显示 Flash Player 上下文菜单时指定菜单项是否可见。 | ContextMenuItem |
公共方法
方法 | 由以下参数定义 | ||
---|---|---|---|
ContextMenuItem(caption:String, separatorBefore:Boolean = false, enabled:Boolean = true, visible:Boolean = true)
创建一个可添加到 ContextMenu.customItems 数组的新 ContextMenuItem 对象。 | ContextMenuItem | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
使用 EventDispatcher 对象注册事件侦听器对象,以使侦听器能够接收事件通知。 | EventDispatcher | ||
[覆盖]
创建 NativeMenuItem 对象的副本。 | ContextMenuItem | ||
将事件调度到事件流中。 | EventDispatcher | ||
检查 EventDispatcher 对象是否为特定事件类型注册了任何侦听器。 | EventDispatcher | ||
表示对象是否已经定义了指定的属性。 | Object | ||
表示 Object 类的实例是否在指定为参数的对象的原型链中。 | Object | ||
表示指定的属性是否存在、是否可枚举。 | Object | ||
从 EventDispatcher 对象中删除侦听器。 | EventDispatcher | ||
设置循环操作动态属性的可用性。 | Object | ||
[静态] | ContextMenuItem | ||
[静态] | ContextMenuItem | ||
[静态] | ContextMenuItem | ||
[静态] | ContextMenuItem | ||
[静态] | ContextMenuItem | ||
[静态] | ContextMenuItem | ||
[静态] | ContextMenuItem | ||
返回此对象的字符串表示形式,其格式设置遵守区域设置特定的约定。 | Object | ||
[覆盖]
返回一个字符串,其中包含 NativeMenuItem 对象的所有属性。 | NativeMenuItem | ||
返回指定对象的原始值。 | Object | ||
检查是否用此 EventDispatcher 对象或其任何祖代为指定事件类型注册了事件侦听器。 | EventDispatcher |
事件
事件 | 摘要 | 由以下参数定义 | ||
---|---|---|---|---|
[广播事件] Flash Player 或 AIR 应用程序获得操作系统焦点并变为活动状态时将调度此事件。 | EventDispatcher | |||
[广播事件] Flash Player 或 AIR 应用程序失去操作系统焦点并变为非活动状态时将调度此事件。 | EventDispatcher | |||
在显示包含此项目的菜单的前一刻由此 NativeMenuItem 对象调度。 | NativeMenuItem | |||
用户从上下文菜单中选择某一项时调度。 | ContextMenuItem | |||
在包含它的菜单显示之前的一瞬间且按下其等效键时由此 NativeMenuItem 对象调度。 | NativeMenuItem | |||
每当用户选择菜单项时调度。 | NativeMenuItem |
属性详细信息
caption | 属性 |
separatorBefore | 属性 |
visible | 属性 |
构造函数详细信息
ContextMenuItem | () | 构造函数 |
public function ContextMenuItem(caption:String, separatorBefore:Boolean = false, enabled:Boolean = true, visible:Boolean = true)
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9 |
创建一个可添加到 ContextMenu.customItems
数组的新 ContextMenuItem 对象。
caption:String — 指定与菜单项关联的文本。有关 caption 值限制,请参阅 ContextMenuItem 类概述。
| |
separatorBefore:Boolean (default = false ) — 指定分隔条是否显示在上下文菜单中的菜单项上方。默认值为 false 。
| |
enabled:Boolean (default = true ) — 指定菜单项在上下文菜单中是处于启用状态还是禁用状态。默认值为 true (启用)。此参数是可选的。
| |
visible:Boolean (default = true ) — 指定菜单项是否可见。默认值为 true (可见)。
|
方法详细信息
clone | () | 方法 |
systemClearMenuItem | () | 方法 |
systemCopyLinkMenuItem | () | 方法 |
systemCopyMenuItem | () | 方法 |
systemCutMenuItem | () | 方法 |
systemOpenLinkMenuItem | () | 方法 |
systemPasteMenuItem | () | 方法 |
systemSelectAllMenuItem | () | 方法 |
事件详细信息
menuItemSelect | 事件 |
事件对象类型:
属性 ContextMenuEvent.type =
flash.events.ContextMenuEvent
属性 ContextMenuEvent.type =
flash.events.ContextMenuEvent.MENU_ITEM_SELECT
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9 |
用户从上下文菜单中选择某一项时调度。用户通过单击其指针设备的辅助按钮来生成上下文菜单。
定义menuItemSelect
事件对象的 type
属性值。
此事件具有以下属性:
属性 | 值 |
---|---|
bubbles | false |
cancelable | false ;没有要取消的默认行为。 |
contextMenuOwner | 菜单附加到的显示列表对象。 |
currentTarget | 当前正在使用某个事件侦听器处理 Event 对象的对象。 |
mouseTarget | 用户右键单击以显示上下文菜单的显示列表对象。 |
target | 已选定的 ContextMenuItem 对象。target 不一定是显示列表中注册此事件侦听器的对象。请使用 currentTarget 属性来访问显示列表中当前正在处理此事件的对象。 |
示例 如何使用本示例
ContextMenuItemExample.as
下例使用
ContextMenuBuiltInItemsExample
类从舞台中删除默认的上下文菜单项,并添加新的菜单项。这是由以下步骤完成的:
- 声明属性
myContextMenu
,然后将其赋给新的 ContextMenu 对象。 - 调用
removeDefaultItems()
方法,该方法将删除所有内置的上下文菜单项(“打印”除外)。 - 调用
addCustomMenuItems()
方法,该方法使用数组的push()
方法将称为Hello World
的菜单项放入customItems
数组。 Hello World
上下文菜单项添加到舞台的上下文菜单项列表中。- 将具有文本“在此处右键单击”的 TextField 对象添加到舞台。
package { import flash.ui.ContextMenu; import flash.ui.ContextMenuItem; import flash.ui.ContextMenuBuiltInItems; import flash.display.Sprite; import flash.text.TextField; public class ContextMenuItemExample extends Sprite { private var myContextMenu:ContextMenu; public function ContextMenuItemExample() { myContextMenu = new ContextMenu(); removeDefaultItems(); addCustomMenuItems(); this.contextMenu = myContextMenu; addChild(createLabel()); } private function removeDefaultItems():void { myContextMenu.hideBuiltInItems(); var defaultItems:ContextMenuBuiltInItems = myContextMenu.builtInItems; defaultItems.print = true; } private function addCustomMenuItems():void { var item:ContextMenuItem = new ContextMenuItem("Hello World"); myContextMenu.customItems.push(item); } private function createLabel():TextField { var txtField:TextField = new TextField(); txtField.text = "Right Click Here"; return txtField; } } }
Tue Jun 12 2018, 11:04 AM Z