flash.ui
public final class ContextMenuItem
继承ContextMenuItem Inheritance NativeMenuItem Inheritance EventDispatcher Inheritance Object

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

使用 ContextMenuItem 类可以创建在 上下文菜单中显示的自定义菜单项。每个 ContextMenuItem 对象都有一个显示在上下文菜单中的标题(文本)。若要向上下文菜单中添加新项,请将其添加到 ContextMenu 对象的 customItems 数组。

利用 ContextMenuItem 类的属性,您可以启用或禁用特定菜单项,也可以显示或隐藏菜单项。

可以为 menuItemSelect 事件编写事件处理程序,以便在用户选择菜单项时为其添加功能。

自定义菜单项出现在上下文菜单的顶部,并位于所有内置菜单项之上。自定义菜单项与内置菜单项始终由分隔条隔开。(AIR 中没有内置项。)

查看示例

另请参见

ContextMenu 类
ContextMenuBuiltInItems 类


公共属性
 属性定义方
  caption : String
指定上下文菜单中显示的菜单项标题(文本)。
ContextMenuItem
 InheritedAIR-only checked : Boolean
控制此菜单项是否显示复选标记。
NativeMenuItem
 Inheritedconstructor : Object
对类对象或给定对象实例的构造函数的引用。
Object
 InheritedAIR-only data : Object
与此菜单项关联的任意数据对象。
NativeMenuItem
 InheritedAIR-only enabled : Boolean
控制是否启用此菜单项。
NativeMenuItem
 InheritedAIR-only isSeparator : Boolean
[只读 (read-only)] 报告此项目是否为菜单分隔线。
NativeMenuItem
 InheritedAIR-only keyEquivalent : String
此菜单项的等效键。
NativeMenuItem
 InheritedAIR-only keyEquivalentModifiers : Array
等效功能键的键控代码数组。
NativeMenuItem
 InheritedAIR-only label : String
此菜单项的显示字符串。
NativeMenuItem
 InheritedAIR-only menu : NativeMenu
[只读 (read-only)] 包含此项目的菜单。
NativeMenuItem
 InheritedAIR-only mnemonicIndex : int
菜单项标签中的助记键字符的位置。
NativeMenuItem
 InheritedAIR-only name : String
此菜单项的名称。
NativeMenuItem
 Inheritedprototype : Object
[静态] 对类或函数对象的原型对象的引用。
Object
  separatorBefore : Boolean
指示指定的菜单项上方是否显示分隔条。
ContextMenuItem
 InheritedAIR-only submenu : NativeMenu
与此菜单项关联的子菜单。
NativeMenuItem
  visible : Boolean
指示在显示 Flash Player 上下文菜单时指定菜单项是否可见。
ContextMenuItem
公共方法
 方法定义方
  
ContextMenuItem(caption:String, separatorBefore:Boolean = false, enabled:Boolean = true, visible:Boolean = true)
创建一个可添加到 ContextMenu.customItems 数组的新 ContextMenuItem 对象。
ContextMenuItem
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
使用 EventDispatcher 对象注册事件侦听器对象,以使侦听器能够接收事件通知。
EventDispatcher
  
创建 NativeMenuItem 对象的副本。
ContextMenuItem
 Inherited
将事件调度到事件流中。
EventDispatcher
 Inherited
检查 EventDispatcher 对象是否为特定事件类型注册了任何侦听器。
EventDispatcher
 Inherited
指示对象是否已经定义了指定的属性。
Object
 Inherited
指示 Object 类的实例是否在指定为参数的对象的原型链中。
Object
 Inherited
指示指定的属性是否存在、是否可枚举。
Object
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
从 EventDispatcher 对象中删除侦听器。
EventDispatcher
 Inherited
设置循环操作动态属性的可用性。
Object
  
[静态]
ContextMenuItem
  
[静态]
ContextMenuItem
  
[静态]
ContextMenuItem
  
[静态]
ContextMenuItem
  
[静态]
ContextMenuItem
  
[静态]
ContextMenuItem
  
[静态]
ContextMenuItem
 Inherited
返回一个字符串,其中包含 NativeMenuItem 对象的所有属性。
NativeMenuItem
 Inherited
返回指定对象的原始值。
Object
 Inherited
检查是否用此 EventDispatcher 对象或其任何始祖为指定事件类型注册了事件侦听器。
EventDispatcher
事件
 事件 摘要 定义方
 Inherited[广播事件] Flash Player 或 AIR 应用程序获得操作系统焦点并变为活动状态时将调度此事件。EventDispatcher
 Inherited[广播事件] Flash Player 或 AIR 应用程序失去操作系统焦点并变为非活动状态时将调度此事件。EventDispatcher
 Inherited在显示包含此项目的菜单的前一刻由此 NativeMenuItem 对象调度。NativeMenuItem
  用户从上下文菜单中选择项时调度。ContextMenuItem
 Inherited每当用户选择菜单项时调度。NativeMenuItem
属性详细信息
caption属性
caption:String  [读写]

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

指定上下文菜单中显示的菜单项标题(文本)。有关 caption 值限制,请参阅 ContextMenuItem 类概述。



实现
    public function get caption():String
    public function set caption(value:String):void
separatorBefore属性 
separatorBefore:Boolean  [读写]

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

指示指定的菜单项上方是否显示分隔条。

注意:任何自定义菜单项和内置菜单项之间始终会出现分隔条。

默认值为 false.



实现
    public function get separatorBefore():Boolean
    public function set separatorBefore(value:Boolean):void
visible属性 
visible:Boolean  [读写]

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

指示在显示 Flash Player 上下文菜单时指定菜单项是否可见。

默认值为 true.



实现
    public function get visible():Boolean
    public function set visible(value:Boolean):void
构造函数详细信息
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()方法
override public function clone():NativeMenuItem

创建 NativeMenuItem 对象的副本。

返回
NativeMenuItem
systemClearMenuItem()方法 
public static function systemClearMenuItem():ContextMenuItem

返回
ContextMenuItem
systemCopyLinkMenuItem()方法 
public static function systemCopyLinkMenuItem():ContextMenuItem

返回
ContextMenuItem
systemCopyMenuItem()方法 
public static function systemCopyMenuItem():ContextMenuItem

返回
ContextMenuItem
systemCutMenuItem()方法 
public static function systemCutMenuItem():ContextMenuItem

返回
ContextMenuItem
systemOpenLinkMenuItem()方法 
public static function systemOpenLinkMenuItem():ContextMenuItem

返回
ContextMenuItem
systemPasteMenuItem()方法 
public static function systemPasteMenuItem():ContextMenuItem

返回
ContextMenuItem
systemSelectAllMenuItem()方法 
public static function systemSelectAllMenuItem():ContextMenuItem

返回
ContextMenuItem
事件详细信息
menuItemSelect 事件
事件对象类型: 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 类从舞台中删除默认的上下文菜单项,并添加新的菜单项。这是由以下步骤完成的:
  1. 声明属性 myContextMenu,然后将其赋给新的 ContextMenu 对象。
  2. 调用 removeDefaultItems() 方法,该方法将删除所有内置的上下文菜单项(“打印”除外)。
  3. 调用 addCustomMenuItems() 方法,该方法使用数组的 push() 方法将称为 Hello World 的菜单项放入 customItems 数组。
  4. Hello World 上下文菜单项添加到舞台的上下文菜单项列表中。
  5. 将具有文本“在此处右键单击”的 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;
        }
    }
}