(仅限 AIR)
flash.display
public class NativeMenu
继承NativeMenu Inheritance EventDispatcher Inheritance Object
子类 ContextMenu

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

NativeMenu 类包含用于定义菜单的方法和属性。

AIR 支持以下菜单:

Menu实例功能测试支持平台默认提供?
应用程序” NativeApplication.nativeApplication.menu NativeApplication.supportsMenu Mac OS X
窗口 NativeWindow.menu NativeWindow.supportsMenu Windows、Linux
停靠图标 NativeApplication.nativeApplication.icon.menu NativeApplication.supportsDockIcon Mac OS X、某些 Linux 版本
系统任务栏图标 NativeApplication.nativeApplication.icon.menu NativeApplication.supportsSystemTrayIcon Windows、某些 Linux 版本
上下文 InteractiveObject.contextMenu 始终支持全部
弹出菜单任何 NativeMenu 实例始终支持全部

菜单可以包含命令项、子菜单项和分隔线项。菜单项是使用 addItem()addItemAt()addSubmenu()addSubmenuAt() 方法添加到菜单中的。菜单项的显示顺序与菜单项在菜单的 items 数组中的顺序相符。

子菜单是通过父菜单的匹配菜单项的 submenu 属性附加到其父菜单的。窗口和应用程序菜单的根菜单必须只包含子菜单项;没有子菜单的项目可能不予显示,它们与用户对这些菜单类型的预期相反。

当选择了菜单中的命令项或其子菜单之一时,菜单将调度 select 事件。(子菜单和分隔符项不可选择。)事件对象的 target 属性将引用所选项目。

在显示菜单的前一刻,菜单将调度 displaying 事件。您可以根据应用程序的当前状态使用此事件来更新菜单内容。

注意:您可用使用 NativeMenu 或 ContextMenu 对象来设置上下文菜单。Flash Player 仅支持 ContextMenu 类,不支持 NativeMenu 类。

另请参见

flash.display.InteractiveObject.contextMenu
flash.display.NativeMenuItem
flash.display.NativeWindow.menu
flash.desktop.DockIcon
flash.desktop.SystemTrayIcon
flash.desktop.NativeApplication.menu
flash.desktop.NativeApplication.icon


公共属性
 属性定义方
 Inheritedconstructor : Object
对类对象或给定对象实例的构造函数的引用。
Object
  AIR-only items : Array
此菜单中 NativeMenuItem 对象的数组。
NativeMenu
  AIR-only numItems : int
[只读 (read-only)] 此菜单中 NativeMenuItem 对象的数量。
NativeMenu
  AIR-only parent : NativeMenu
[只读 (read-only)] 父菜单。
NativeMenu
 Inheritedprototype : Object
[静态] 对类或函数对象的原型对象的引用。
Object
公共方法
 方法定义方
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
使用 EventDispatcher 对象注册事件侦听器对象,以使侦听器能够接收事件通知。
EventDispatcher
  
在菜单底部添加一个菜单项。
NativeMenu
  
在指定位置插入一个菜单项。
NativeMenu
  
通过插入新菜单项,在菜单中添加子菜单。
NativeMenu
  
通过在指定位置插入新菜单项,在菜单中添加子菜单。
NativeMenu
  
创建菜单和所有项目的副本。
NativeMenu
  
报告此菜单是否包含指定的菜单项。
NativeMenu
 Inherited
将事件调度到事件流中。
EventDispatcher
  
AIR-only display(stage:Stage, stageX:Number, stageY:Number):void
在指定位置弹出此菜单。
NativeMenu
  
获取指定索引处的菜单项。
NativeMenu
  
获取具有指定名称的菜单项。
NativeMenu
  
获取指定项目的位置。
NativeMenu
 Inherited
检查 EventDispatcher 对象是否为特定事件类型注册了任何侦听器。
EventDispatcher
 Inherited
指示对象是否已经定义了指定的属性。
Object
 Inherited
指示 Object 类的实例是否在指定为参数的对象的原型链中。
Object
 Inherited
指示指定的属性是否存在、是否可枚举。
Object
  
从菜单中删除所有项目。
NativeMenu
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
从 EventDispatcher 对象中删除侦听器。
EventDispatcher
  
删除指定的菜单项。
NativeMenu
  
删除并返回指定索引处的菜单项。
NativeMenu
  
将菜单项移到指定位置。
NativeMenu
 Inherited
设置循环操作动态属性的可用性。
Object
 Inherited
返回指定对象的字符串表示形式。
Object
 Inherited
返回指定对象的原始值。
Object
 Inherited
检查是否用此 EventDispatcher 对象或其任何始祖为指定事件类型注册了事件侦听器。
EventDispatcher
事件
 事件 摘要 定义方
 Inherited[广播事件] Flash Player 或 AIR 应用程序获得操作系统焦点并变为活动状态时将调度此事件。EventDispatcher
 Inherited[广播事件] Flash Player 或 AIR 应用程序失去操作系统焦点并变为非活动状态时将调度此事件。EventDispatcher
  在显示菜单的前一刻由此 NativeMenu 对象调度。NativeMenu
  在选择其菜单项之一或其后代子菜单之一中的项目时由此 NativeMenu 对象调度。NativeMenu
属性详细信息
AIR-only items属性
items:Array  [读写]

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

此菜单中 NativeMenuItem 对象的数组。

数组按显示顺序排序。

注意:此属性在 AIR 1.0 中为只读,在 AIR 1.1 中变为读/写。



实现
    public function get items():Array
    public function set items(value:Array):void
AIR-only numItems属性 
numItems:int  [只读 (read-only)]

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

此菜单中 NativeMenuItem 对象的数量。



实现
    public function get numItems():int
AIR-only parent属性 
parent:NativeMenu  [只读 (read-only)]

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

父菜单。

根(顶级)菜单对象的 parentnull



实现
    public function get parent():NativeMenu
方法详细信息
AIR-only addItem()方法
public function addItem(item:NativeMenuItem):NativeMenuItem

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

在菜单底部添加一个菜单项。

创建上下文菜单时,可以添加 NativeMenuItem 或 ContextMenuItem 对象。但是,建议在上下文菜单中仅使用一种类型的对象,以使菜单中的所有项都具有相同的属性。

参数

item:NativeMenuItem — 要在菜单底部添加的 NativeMenuItem 对象。

返回
NativeMenuItem

引发
ArgumentError — 如果 itemnull
 
ArgumentError — 如果 item 是另一个菜单的成员。
AIR-only addItemAt()方法 
public function addItemAt(item:NativeMenuItem, index:int):NativeMenuItem

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

在指定位置插入一个菜单项。

参数

item:NativeMenuItem — 要插入的 NativeMenuItem 对象。
 
index:int — 菜单中要插入该菜单项的位置(从 0 开始)。

返回
NativeMenuItem

引发
ArgumentError — 如果 itemnull
 
ArgumentError — 如果 item 是另一个菜单的成员。
 
RangeError — 如果 index 位于菜单的 items 数组的范围以外。
AIR-only addSubmenu()方法 
public function addSubmenu(submenu:NativeMenu, label:String):NativeMenuItem

运行时版本: AIR 1.0

通过插入新菜单项,在菜单中添加子菜单。

调用 addSubMenu() 方法等效于创建一个新菜单项、将其添加到菜单,并将 NativeMenu 对象分配给该项目的 submenu 属性。

参数

submenu:NativeMenu — 定义要添加的子菜单的 NativeMenu 对象。
 
label:String — 要添加的菜单项的显示标签.

返回
NativeMenuItem — 为该子菜单创建的 NativeMenuItem 对象。
AIR-only addSubmenuAt()方法 
public function addSubmenuAt(submenu:NativeMenu, index:int, label:String):NativeMenuItem

运行时版本: AIR 1.0

通过在指定位置插入新菜单项,在菜单中添加子菜单。

调用 addSubMenuAt() 方法等效于创建一个新菜单项、将其插入到菜单中需要的位置,并将 NativeMenu 对象分配给该项目的 submenu 属性。

参数

submenu:NativeMenu — 定义要添加的子菜单的 NativeMenu 对象。
 
index:int — 此菜单的 items 数组中要插入将添加的菜单项的位置.
 
label:String — 要添加的菜单项的显示标签.

返回
NativeMenuItem — 为该子菜单创建的 NativeMenuItem 对象。
AIR-only clone()方法 
public function clone():NativeMenu

运行时版本: AIR 1.0

创建菜单和所有项目的副本。

返回
NativeMenu
AIR-only containsItem()方法 
public function containsItem(item:NativeMenuItem):Boolean

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

报告此菜单是否包含指定的菜单项。

参数

item:NativeMenuItem — 要查找的 NativeMenuItem 对象.

返回
Boolean — 如果 item 位于此菜单中,则为 true.
AIR-only display()方法 
public function display(stage:Stage, stageX:Number, stageY:Number):void

运行时版本: AIR 1.0

在指定位置弹出此菜单。

参数

stage:Stage — 要在其上显示此菜单的 Stage 对象。
 
stageX:Number — 相对于要显示此菜单的舞台原点的水平像素数。
 
stageY:Number — 相对于要显示此菜单的舞台原点的垂直像素数。

AIR-only getItemAt()方法 
public function getItemAt(index:int):NativeMenuItem

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

获取指定索引处的菜单项。

参数

index:int — 要返回的项目的位置(从 0 开始)。

返回
NativeMenuItem — 位于菜单中指定位置的 NativeMenuItem 对象。

引发
RangeError — 如果 index 位于此菜单的 items 数组的范围以外。
AIR-only getItemByName()方法 
public function getItemByName(name:String):NativeMenuItem

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

获取具有指定名称的菜单项。

注意:默认情况下不分配菜单项的 name 属性。

参数

name:String — 要查找的字符串。

返回
NativeMenuItem — 具有指定名称的 NativeMenuItem 对象,如果菜单中没有这样的项目,则为 null
AIR-only getItemIndex()方法 
public function getItemIndex(item:NativeMenuItem):int

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

获取指定项目的位置。

参数

item:NativeMenuItem — 要查找的 NativeMenuItem 对象.

返回
int — 此菜单中指定项目的位置(从 0 开始),如果该项目不在此菜单中,则为 null
AIR-only removeAllItems()方法 
public function removeAllItems():void

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

从菜单中删除所有项目。

AIR-only removeItem()方法 
public function removeItem(item:NativeMenuItem):NativeMenuItem

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

删除指定的菜单项。

参数

item:NativeMenuItem — 要从此菜单删除的 NativeMenuItem 对象。

返回
NativeMenuItem

引发
RangeError — 如果 item 不在此菜单中
AIR-only removeItemAt()方法 
public function removeItemAt(index:int):NativeMenuItem

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

删除并返回指定索引处的菜单项。

参数

index:int — 要删除的项目的位置(从 0 开始)。

返回
NativeMenuItem — 已删除的 NativeMenuItem 对象。

引发
RangeError — 如果 index 位于此菜单的 items 数组的范围以外。
AIR-only setItemIndex()方法 
public function setItemIndex(item:NativeMenuItem, index:int):void

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

将菜单项移到指定位置。

参数

item:NativeMenuItem — 要移动的 NativeMenuItem 对象。
 
index:int — 菜单中要将 item 移动到的位置(从 0 开始)。


引发
RangeError — 如果 index 位于此菜单的 items 数组的范围以外。
事件详细信息
AIR-only displaying 事件
事件对象类型: flash.events.Event
属性 Event.type = flash.events.Event.DISPLAYING

运行时版本: AIR 1.0

在显示菜单的前一刻由此 NativeMenu 对象调度。

侦听此事件可在显示菜单之前更新菜单。菜单中的项目也调度 displaying 事件。

Event.DISPLAYING 常量定义 displaying 事件对象的 type 属性值。

注意:无论目标是否出现在显示列表中,此事件都不会通过“捕获阶段”,而是被直接调度给此目标。

此事件具有以下属性:

属性
bubbles false
cancelable false
currentTarget 当前正在使用某个事件侦听器处理 Event 对象的对象。
target 将要显示的 对象。
AIR-only select 事件  
事件对象类型: flash.events.Event
属性 Event.type = flash.events.Event.SELECT

运行时版本: AIR 1.0

在选择其菜单项之一或其后代子菜单之一中的项目时由此 NativeMenu 对象调度。

select 事件将从菜单项冒泡 到包含它的菜单,并贯穿父菜单链到达根菜单对象。该事件对象的 target 属性将引用所选的 NativeMenuItem 对象;currentTarget 属性将引用此 NativeMenu 对象。

Event.SELECT 常量定义 select 事件对象的 type 属性的值。

此事件具有以下属性:

属性
bubbles false
cancelable false;没有要取消的默认行为。
currentTarget 当前正在使用某个事件侦听器处理 Event 对象的对象。
target 对象,已在其中选定了一个项目。