(仅限 AIR)
mx.controls
public class FlexNativeMenu
继承FlexNativeMenu Inheritance EventDispatcher Inheritance Object
实现 ILayoutManagerClient, IFlexContextMenu

运行时版本: AIR 1.1

FlexNativeMenu 组件为 AIR 的 NativeMenu 类提供包装。FlexNativeMenu 提供了一种使用 Flex 开发人员熟悉且与其它 Flex 菜单组件一致的技术定义本机操作系统菜单(如窗口、应用程序和上下文菜单)的方法,如使用 MXML 和数据提供程序指定菜单结构。然而,与 Flex 菜单组件不同,FlexNativeMenu 组件定义的菜单由主机操作系统作为 AIR 应用程序的一部分呈现,而不是由 Flex 作为可视组件创建。

与其它 Flex 菜单组件相同的是,要定义由 FlexNativeMenu 组件表示的菜单的结构,需要创建一个数据提供程序(如 XML 层次结构或对象数组),其中包含要用于定义该菜单的数据。可以设置多个属性来定义如何解释数据提供程序数据,如 labelField 属性指定用于菜单项标签的数据字段,keyEquivalentField 属性指定定义菜单项的键盘等效快捷方式的字段,mnemonicIndexField 属性指定标签中用作菜单项助记键字符的索引位置的字段。

FlexNativeMenu 项目的数据提供程序可以指定几个属性来确定项目的显示方式和行为方式,如以下 XML 数据提供程序所示:

<mx:XML format="e4x" id="myMenuData">
     <root>
        <menuitem label="MenuItem A">
            <menuitem label="SubMenuItem A-1" enabled="False"/>
            <menuitem label="SubMenuItem A-2"/>
        </menuitem>
        <menuitem label="MenuItem B" type="check" toggled="true"/>
        <menuitem label="MenuItem C" type="check" toggled="false"/>
        <menuitem type="separator"/>
        <menuitem label="MenuItem D">
            <menuitem label="SubMenuItem D-1"/>
            <menuitem label="SubMenuItem D-2"/>
            <menuitem label="SubMenuItem D-3"/>
        </menuitem>
    </root>
 </mx:XML>

下表列出了您可以指定的属性及其数据类型、目的,以及数据提供程序表示它们必须采取的方式(如果菜单使用 DefaultDataDescriptor 类分析数据提供程序):

属性类型说明
altKey Boolean指定是否需要使用 Alt 键作为此项目等效键的一部分。
cmdKey Boolean 注意:从 Flex 3.2 起不再推荐使用此属性。请改用 commandKey。指定是否需要使用 Command 键作为此项目等效键的一部分。
commandKey Boolean指定是否需要使用 Command 键作为此项目等效键的一部分。
controlKey Boolean指定是否需要使用 Ctrl 键作为此项目等效键的一部分。
ctrlKey Boolean 注意:从 Flex 3.2 起不再推荐使用此属性。请改用 controlKey。指定是否需要使用 Ctrl 键作为此项目等效键的一部分。
enabled Boolean 指定用户可以选择菜单项 (true),还是不可以选择菜单项 (false)。如果未指定,则 Flex 将假定该值为 true 来处理此项目。如果您使用默认数据说明符,则数据提供程序必须使用 enabledXML 属性或对象字段来指定此特征。
keyEquivalent 字符串 指定一个键盘字符,当按下该字符时会像选择菜单项一样触发事件。菜单的 keyEquivalentFieldkeyEquivalentFunction 属性确定数据中指定等效键的字段名称,或确定等效键的函数。(如果数据提供程序采用 E4X XML 格式,则必须指定其中一个属性以分配等效键。)
label 字符串 指定控件中显示的文本。此项目适用于除 separator 之外的所有菜单项类型。菜单的 labelFieldlabelFunction 属性确定数据中指定标签的字段名称,或确定标签的函数。(如果数据提供程序采用 E4X XML 格式,则必须指定其中一个属性以显示标签。)如果数据提供程序是字符串数组,则 Flex 使用字符串值作为标签。
mnemonicIndex 整数 指定标签中用作菜单项助记键的字符的索引位置。菜单的 mnemonicIndexFieldmnemonicIndexFunction 属性确定数据中指定助记键索引的字段名称,或确定助记键索引的函数。(如果数据提供程序采用 E4X XML 格式,则必须指定这些属性之一,以便指定数据中的助记键索引。)此外,您可以紧挨着某个字符在其左侧添加下划线,以此指示标签中的该字符是菜单项的助记键。
shiftKey Boolean指定是否需要使用 Shift 键作为此项目等效键的一部分。
toggled Boolean 指定是否选择了检查项目。如果未指定,则 Flex 处理该项目的方式将视同该值为 false 一样,并且该项目是不选中的。如果您使用默认数据说明符,则数据提供程序必须使用 toggledXML 属性或对象字段来指定此特征。
type 字符串 指定菜单项的类型。有效值为 separatorcheck。Flex 将其它所有值或无类型条目的节点视为常规菜单条目。如果您使用默认数据说明符,则数据提供程序必须使用 typeXML 属性或对象字段来指定此特征。

要创建窗口菜单,请将 FlexNativeMenu 设置为窗口的 menu 属性,或者应在其上显示菜单的 WindowedApplication 实例。要创建应用程序菜单,请分配 FlexNativeMenu 作为应用程序的 WindowedApplication 的 menu 属性。要分配 FlexNativeMenu 作为部分用户界面的上下文菜单,请调用 FlexNativeMenu 实例的 setContextMenu() 方法,而将 UI 对象作为参数传递。调用 FlexNativeMenu 组件的 display() 方法,将该菜单显示为应用程序的任一窗口中的弹出菜单。

要检测何时会触发菜单项命令,请为 itemClick 事件注册侦听器。您还可以为 menuShow 事件注册侦听器以确定何时打开任何菜单或子菜单。

MXML 语法expanded隐藏 MXML 语法

The <mx:FlexNativeMenu> tag supports the following tag attributes:

  <mx:FlexNativeMenu
    Properties
    dataDescriptor="mx.controls.treeClasses.DefaultDataDescriptor"
    dataProvider="undefined"
    keyEquivalentField="keyEquivalent"
    keyEquivalentFunction="undefined"
    keyEquivalentModifiersFunction="undefined"
    labelField="label"
    labelFunction="undefined"
    mnemonicIndexField="mnemonicIndex"
    mnemonicIndexFunction="undefined"
    showRoot="true"
 
    Events
    itemClick="No default"
    menuShow="No default"
  />
  

另请参见

flash.display.NativeMenu
mx.events.FlexNativeMenuEvent


公共属性
 属性定义方
 Inheritedconstructor : Object
对类对象或给定对象实例的构造函数的引用。
Object
  dataDescriptor : IMenuDataDescriptor
访问并处理数据提供程序中数据的对象。
FlexNativeMenu
  dataProvider : Object
用于定义 NativeMenu 中菜单项结构的对象的层次结构。
FlexNativeMenu
  hasRoot : Boolean
[只读 (read-only)] 一个标志,用于指明当前数据提供程序具有根节点;例如,层次结构中的单个顶级节点。
FlexNativeMenu
  initialized : Boolean
一个标志,用于确定某个对象是否已通过布局的所有三个阶段:提交、测量和布局(假设每个阶段都是必需的)。
FlexNativeMenu
  keyEquivalentField : String
数据提供程序中的字段名称,用以确定每个菜单项的等效键。
FlexNativeMenu
  keyEquivalentFunction : Function
确定每个菜单项等效键的函数。
FlexNativeMenu
  keyEquivalentModifiersFunction : Function
确定每个菜单项的等效功能键的函数。
FlexNativeMenu
  labelField : String
数据提供程序中的字段名称,用以确定每个菜单项的显示文本。
FlexNativeMenu
  labelFunction : Function
用于确定每个菜单项的显示文本的函数。
FlexNativeMenu
  mnemonicIndexField : String
数据提供程序中的字段名称,用以确定每个菜单项的助记键索引。
FlexNativeMenu
  mnemonicIndexFunction : Function
确定每个菜单项的助记键索引的函数。
FlexNativeMenu
  nativeMenu : NativeMenu
[只读 (read-only)] 返回由此对象管理的 flash.display.NativeMenu;如果不存在,则返回 null。
FlexNativeMenu
  nestLevel : int
此对象在所属关系层次结构中的深度。
FlexNativeMenu
  processedDescriptors : Boolean
临时或延迟子项创建操作后设置为 true,具体取决于发生对象。
FlexNativeMenu
 Inheritedprototype : Object
[静态] 对类或函数对象的原型对象的引用。
Object
  showRoot : Boolean
指定是否显示数据提供程序的根节点的布尔值标志。
FlexNativeMenu
  updateCompletePendingFlag : Boolean
一个标志,确定某个对象是否已通过所有三个阶段的布局验证(假设需要通过所有验证)。
FlexNativeMenu
公共方法
 方法定义方
  
构造函数。
FlexNativeMenu
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
使用 EventDispatcher 对象注册事件侦听器对象,以使侦听器能够接收事件通知。
EventDispatcher
 Inherited
将事件调度到事件流中。
EventDispatcher
  
display(stage:Stage, stageX:Number, stageY:Number):void
在指定位置弹出此菜单。
FlexNativeMenu
 Inherited
检查 EventDispatcher 对象是否为特定事件类型注册了任何侦听器。
EventDispatcher
 Inherited
指示对象是否已经定义了指定的属性。
Object
  
标记组件,以便在稍后屏幕更新期间调用该组件的 commitProperties() 方法。
FlexNativeMenu
 Inherited
指示 Object 类的实例是否在指定为参数的对象的原型链中。
Object
 Inherited
指示指定的属性是否存在、是否可枚举。
Object
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
从 EventDispatcher 对象中删除侦听器。
EventDispatcher
  
将 InteractiveObject 的上下文菜单设置为基础本机菜单。
FlexNativeMenu
 Inherited
设置循环操作动态属性的可用性。
Object
 Inherited
返回指定对象的字符串表示形式。
Object
  
取消对已设为基础本机菜单的 InteractiveObject 上下文菜单的设置。
FlexNativeMenu
  
验证子项的位置和大小,并绘制其它可视内容。
FlexNativeMenu
  
验证并更新此对象的属性和布局,并重绘该对象(如果需要)。
FlexNativeMenu
  
验证组件的属性。
FlexNativeMenu
  
validateSize(recursive:Boolean = false):void
如果使用此 ILayoutManagerClient 调用 LayoutManager.invalidateSize() 方法,随后在测量时调用了 validateSize() 方法,则验证组件的度量大小。
FlexNativeMenu
 Inherited
返回指定对象的原始值。
Object
 Inherited
检查是否用此 EventDispatcher 对象或其任何始祖为指定事件类型注册了事件侦听器。
EventDispatcher
受保护的方法
 方法定义方
  
处理对组件设置的属性。
FlexNativeMenu
  
基于 keyEquivalentField 和 keyEquivalentFunction 属性返回给定数据对象的等效键。
FlexNativeMenu
  
基于 keyEquivalentModifiersFunction 属性返回给定数据对象的等效功能键。
FlexNativeMenu
  
基于 labelField 和 labelFunction 属性,返回用作给定数据对象的菜单项标签的 String。
FlexNativeMenu
  
基于 mnemonicIndexField 和 mnemonicIndexFunction 属性,返回给定数据对象的助记键索引。
FlexNativeMenu
  
根据是否存在下划线字符从标签中提取助记键索引。
FlexNativeMenu
  
确定用于 NativeMenuItem 的实际标签,方法为删除下划线字符,然后转换转义下划线字符(如果存在)。
FlexNativeMenu
事件
 事件 摘要 定义方
 Inherited[广播事件] Flash Player 或 AIR 应用程序获得操作系统焦点并变为活动状态时将调度此事件。EventDispatcher
 Inherited[广播事件] Flash Player 或 AIR 应用程序失去操作系统焦点并变为非活动状态时将调度此事件。EventDispatcher
  选择菜单项时调度。FlexNativeMenu
  显示菜单或子菜单前调度。FlexNativeMenu
属性详细信息
dataDescriptor属性
dataDescriptor:IMenuDataDescriptor  [读写]

访问并处理数据提供程序中数据的对象。FlexNativeMenu 控件委托数据描述符提供其数据的相关信息。然后,这些数据用于分析和移动数据源。为 FlexNativeMenu 定义的数据描述符可供其所有子菜单和下级菜单使用。

如果要将此属性指定为 MXML 中的某个属性,则必须使用对数据描述符的引用,而不是描述符的字符串名称。请使用下列格式设置此属性:

<mx:FlexNativeMenu id="flexNativeMenu" dataDescriptor="{new MyCustomDataDescriptor()}"/>

或者,您可以在 MXML 中将该属性指定为嵌套子标签,如下例所示:

<mx:FlexNativeMenu>
      <mx:dataDescriptor>
         <myCustomDataDescriptor>
      </mx:dataDescriptor>
      ...

默认值为 DefaultDataDescriptor 类的内部实例。



实现
    public function get dataDescriptor():IMenuDataDescriptor
    public function set dataDescriptor(value:IMenuDataDescriptor):void
dataProvider属性 
dataProvider:Object  [读写]

用于定义 NativeMenu 中菜单项结构的对象的层次结构。各个数据对象定义菜单项,项目及其子项将成为菜单和子菜单。

FlexNativeMenu 控件按如下方式处理源数据对象:

默认值为 "undefined".

此属性可用作数据绑定的源。修改此属性后,将调度 collectionChange 事件。



实现
    public function get dataProvider():Object
    public function set dataProvider(value:Object):void
hasRoot属性 
hasRoot:Boolean  [只读 (read-only)]

一个标志,用于指明当前数据提供程序具有根节点;例如,层次结构中的单个顶级节点。XML 和 Object 就是有根节点的类型的示例,而 List 和 Array 不是。



实现
    public function get hasRoot():Boolean
initialized属性 
initialized:Boolean  [读写]

一个标志,用于确定某个对象是否已通过布局的所有三个阶段:提交、测量和布局(假设每个阶段都是必需的)。



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

数据提供程序中的字段名称,用以确定每个菜单项的等效键。采用的一系列值在 Keyboard 类中以 KEYNAME_XXXX 常数定义。例如,查阅该列表了解控制字符(如 Home、Insert 等)的值。

设置 keyEquivalentFunction 属性将导致此属性被忽略。

默认值为 "keyEquivalent".

此属性可用作数据绑定的源。修改此属性后,将调度 keyEquivalentChanged 事件。



实现
    public function get keyEquivalentField():String
    public function set keyEquivalentField(value:String):void

另请参见

keyEquivalentFunction属性 
keyEquivalentFunction:Function  [读写]

确定每个菜单项等效键的函数。如果省略此属性,则 Flex 将使用 keyEquivalentField 属性指定的字段或属性的内容。如果指定了此属性,则 Flex 将忽略任何 keyEquivalentField 属性值。

keyEquivalentFunction 属性适用于处理格式化、本地化和平台独立性。

等效功能键函数必须采用一个参数,该参数是数据提供程序中的项目,并且必须返回一个 String。

            myKeyEquivalentFunction(item:Object):String
          

默认值为 "undefined".

此属性可用作数据绑定的源。修改此属性后,将调度 keyEquivalentFunctionChanged 事件。



实现
    public function get keyEquivalentFunction():Function
    public function set keyEquivalentFunction(value:Function):void

另请参见

keyEquivalentModifiersFunction属性 
keyEquivalentModifiersFunction:Function  [读写]

确定每个菜单项的等效功能键的函数。如果省略此属性,则 Flex 将使用其自身默认的函数来确定功能键的 Array,具体方法是在数据提供者数据中确定是否存在以下(布尔型)字段:altKeycommandKeycontrolKeyshiftKey

keyEquivalentModifiersFunction 属性适用于处理格式化、本地化和平台独立性。

等效功能键函数必须采用一个参数,该参数是数据提供程序中的项目,并且必须返回一个功能键名称数组。

            myKeyEquivalentModifiersFunction(item:Object):Array
          

默认值为 "undefined".

此属性可用作数据绑定的源。修改此属性后,将调度 keyEquivalentModifiersFunctionChanged 事件。



实现
    public function get keyEquivalentModifiersFunction():Function
    public function set keyEquivalentModifiersFunction(value:Function):void
labelField属性 
labelField:String  [读写]

数据提供程序中的字段名称,用以确定每个菜单项的显示文本。如果数据提供程序是一个字符串 Array,则 Flex 会将每个字符串值作为标签使用。如果数据提供程序是一个 E4X XML 对象,则必须显式设置此属性。例如,如果 E4X XML 对象中的每个 XML 元素都包含一个“label”属性,其中包含每个菜单项的显示文本,则请将 labelField 设置为 "@label"

在标签中,您可以通过在字符前添加下划线指定将该字符用作助记键索引。例如,"C_ut" 标签值将助记键索引设置为 1。只有显示的第一个下划线具有此功能。若要在标签中显示文字下划线字符,您可以使用一条双下划线对其进行转义。例如,"C__u_t" 标签值可能会生成标签为“C_ut”、助记键索引为 3(“t”字符)的菜单项。如果存在由 mnemonicIndexField 属性定义的字段,并且设置为大于零的值,则此值将优先于任何用下划线指定的助记键索引值。

设置 labelFunction 属性将导致此属性被忽略。

默认值为 "label".

此属性可用作数据绑定的源。修改此属性后,将调度 labelFieldChanged 事件。



实现
    public function get labelField():String
    public function set labelField(value:String):void
labelFunction属性 
labelFunction:Function  [读写]

用于确定每个菜单项的显示文本的函数。标签函数必须在数据提供程序中查找一个或多个相应的字段,并返回一个可显示的字符串。

如果省略此属性,Flex 将使用 labelField 属性指定的字段或属性的内容。如果指定了此属性,则 Flex 将忽略任何 labelField 属性值。

labelFunction 属性有助于处理格式化、本地化和平台独立性。

标签函数必须采用一个参数,该参数是数据提供程序中的项目,并且必须返回一个字符串。

            myLabelFunction(item:Object):String
          

默认值为 "undefined".

此属性可用作数据绑定的源。修改此属性后,将调度 labelFunctionChanged 事件。



实现
    public function get labelFunction():Function
    public function set labelFunction(value:Function):void
mnemonicIndexField属性 
mnemonicIndexField:String  [读写]

数据提供程序中的字段名称,用以确定每个菜单项的助记键索引。

如果此属性指定的字段中包含大于零的数值,则助记键索引将优先于标签中用下划线指定的索引。

设置 mnemonicIndexFunction 属性将导致此属性被忽略。

默认值为 "mnemonicIndex".

此属性可用作数据绑定的源。修改此属性后,将调度 mnemonicIndexChanged 事件。



实现
    public function get mnemonicIndexField():String
    public function set mnemonicIndexField(value:String):void

另请参见

mnemonicIndexFunction属性 
mnemonicIndexFunction:Function  [读写]

确定每个菜单项的助记键索引的函数。

如果省略此属性,Flex 将使用 mnemonicIndexField 属性指定的字段或属性的内容。如果指定了此属性,则 Flex 将忽略任何 mnemonicIndexField 属性值。

如果已定义此属性,并且该函数针对数据项目返回大于零的数值,则返回的助记键索引将优先于标签中用下划线指定的索引。

mnemonicIndexFunction 属性适用于处理格式化、本地化和平台独立性。

助记键索引函数必须采用一个参数,该参数是数据提供程序中的项目,并且必须返回一个常量。

            myMnemonicIndexFunction(item:Object):int
          

默认值为 "undefined".

此属性可用作数据绑定的源。修改此属性后,将调度 mnemonicIndexFunctionChanged 事件。



实现
    public function get mnemonicIndexFunction():Function
    public function set mnemonicIndexFunction(value:Function):void
nativeMenu属性 
nativeMenu:NativeMenu  [只读 (read-only)]

返回由此对象管理的 flash.display.NativeMenu;如果不存在,则返回 null。如果更改菜单或基础数据提供程序,则可能会丢失直接对基础 NativeMenu 实例所做的任何更改。

此属性可用作数据绑定的源。修改此属性后,将调度 nativeMenuUpdate 事件。



实现
    public function get nativeMenu():NativeMenu
nestLevel属性 
nestLevel:int  [读写]

此对象在所属关系层次结构中的深度。测量和布局代码都使用此编号。如果 DisplayList 中没有此组件,则值为 0。



实现
    public function get nestLevel():int
    public function set nestLevel(value:int):void
processedDescriptors属性 
processedDescriptors:Boolean  [读写]

临时或延迟子项创建操作后设置为 true,具体取决于发生对象。对于 Container 对象,在 createComponentsFromDescriptors() 方法结束(即 Container 对象使用其子项描述符创建子项)后,该属性设置为 true

例如,如果 Accordion 容器使用延迟的实例化,则在用户导航到 Accordion 容器的第二个窗格并且该窗格创建其子项后,此窗格的 processedDescriptors 属性才变为 true。但是,如果 Accordion 已将 creationPolicy 属性设置为 "all",则在应用程序启动期间此容器第二个窗格的 processedDescriptors 属性设置为 true

非容器类都没有描述符,所以对于这些类,createChildren() 方法创建任何内部组件子项后,该属性设置为 true



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

指定是否显示数据提供程序的根节点的布尔值标志。

如果数据提供程序具有根节点,但 showRoot 属性设置为 false,则 FlexNativeMenu 控件显示的顶级菜单项与根节点的直接子节点对应。

在使用没有根节点的数据提供程序(如 List 或 Array)时,此标志不起任何作用。

默认值为 true.



实现
    public function get showRoot():Boolean
    public function set showRoot(value:Boolean):void

另请参见

updateCompletePendingFlag属性 
updateCompletePendingFlag:Boolean  [读写]

一个标志,确定某个对象是否已通过所有三个阶段的布局验证(假设需要通过所有验证)。



实现
    public function get updateCompletePendingFlag():Boolean
    public function set updateCompletePendingFlag(value:Boolean):void
构造函数详细信息
FlexNativeMenu()构造函数
public function FlexNativeMenu()

构造函数。

方法详细信息
commitProperties()方法
protected function commitProperties():void

处理对组件设置的属性。

另请参见

display()方法 
public function display(stage:Stage, stageX:Number, stageY:Number):void

在指定位置弹出此菜单。

参数

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

invalidateProperties()方法 
public function invalidateProperties():void

标记组件,以便在稍后屏幕更新期间调用该组件的 commitProperties() 方法。

Invalidation 是一个很有用的机制,可将组件更改延迟到稍后屏幕更新时进行处理,从而消除了重复的工作。例如,要更改文本颜色和大小,如果在更改颜色后立即进行更新,然后在设置大小后再更新大小,就有些浪费。同时更改两个属性后再使用新的大小和颜色一次性呈现文本,效率会更高。

很少调用 Invalidation 方法。通常,在组件上设置属性会自动调用合适的 invalidation 方法。

itemToKeyEquivalent()方法 
protected function itemToKeyEquivalent(data:Object):String

基于 keyEquivalentFieldkeyEquivalentFunction 属性返回给定数据对象的等效键。如果该方法无法将参数转换为字符串,则会返回一个空字符串。

参数

data:Object — 要显示的对象。

返回
String — 基于数据的等效键。
itemToKeyEquivalentModifiers()方法 
protected function itemToKeyEquivalentModifiers(data:Object):Array

基于 keyEquivalentModifiersFunction 属性,返回给定数据对象的等效功能键。如果这种方法无法将此参数转换为功能键 Array,则返回一个空 Array。

参数

data:Object — 要显示的对象。

返回
Array — 基于数据的等效功能键数组
itemToLabel()方法 
protected function itemToLabel(data:Object):String

基于 labelFieldlabelFunction 属性返回用作给定数据对象的菜单项标签的 String。如果该方法无法将参数转换为 String,则会返回一个空格。

参数

data:Object — 要显示的对象。

返回
String — 根据数据要显示的字符串。
itemToMnemonicIndex()方法 
protected function itemToMnemonicIndex(data:Object):int

基于 mnemonicIndexFieldmnemonicIndexFunction 属性返回给定数据对象的助记键索引。如果这种方法无法将此参数转换为整数,则返回 -1。

参数

data:Object — 要显示的对象。

返回
int — 基于数据的助记键索引。
parseLabelToMnemonicIndex()方法 
protected function parseLabelToMnemonicIndex(data:String):int

根据是否存在下划线字符从标签中提取助记键索引。如果存在前导下划线字符,则查找该字符并将其用作索引。

参数

data:String

返回
int
parseLabelToString()方法 
protected function parseLabelToString(data:String):String

确定用于 NativeMenuItem 的实际标签,方法为删除下划线字符,然后转换转义下划线字符(如果存在)。

参数

data:String

返回
String
setContextMenu()方法 
public function setContextMenu(component:InteractiveObject):void

将 InteractiveObject 的上下文菜单设置为基础本机菜单。

参数

component:InteractiveObject

unsetContextMenu()方法 
public function unsetContextMenu(component:InteractiveObject):void

取消对已设为基础本机菜单的 InteractiveObject 上下文菜单的设置。

参数

component:InteractiveObject

validateDisplayList()方法 
public function validateDisplayList():void

验证子项的位置和大小,并绘制其它可视内容。如果使用此 ILayoutManagerClient 调用 LayoutManager.invalidateDisplayList() 方法,则当更新显示列表时会调用 validateDisplayList() 方法。

validateNow()方法 
public function validateNow():void

验证并更新此对象的属性和布局,并重绘该对象(如果需要)。

validateProperties()方法 
public function validateProperties():void

验证组件的属性。如果使用此 ILayoutManagerClient 调用 LayoutManager.invalidateProperties() 方法,则当提交属性值时会调用 validateProperties() 方法。

validateSize()方法 
public function validateSize(recursive:Boolean = false):void

如果使用此 ILayoutManagerClient 调用 LayoutManager.invalidateSize() 方法,随后在测量时调用了 validateSize() 方法,则验证组件的度量大小。

参数

recursive:Boolean (default = false) — 如果为 true,则调用对象子项的此方法。

事件详细信息
itemClick 事件
事件对象类型: mx.events.FlexNativeMenuEvent
属性 FlexNativeMenuEvent.type = mx.events.FlexNativeMenuEvent.ITEM_CLICK

选择菜单项时调度。

FlexNativeMenuEvent.ITEM_CLICK 事件类型常数指示用户已选择菜单项。

此事件类型的事件对象属性包含以下值。并非所有属性对于各种事件都有意义。有关详细信息,请参阅详细的属性说明。

属性
bubbles false
cancelable true
currentTarget 用于定义处理该事件的事件侦听器的 Object。例如,如果您使用 myButton.addEventListener() 注册某个事件侦听器,则 myButton 为 currentTarget 的值。
index 选定菜单项在菜单中的索引。
item dataProvider 中选定的项目。
label 选定菜单项的标签文本。
nativeMenu 与此事件关联的特定 NativeMenu 实例。
nativeMenuItem 与此事件关联的特定 NativeMenuItem 实例。
target 调度该事件的 Object;它不一定是侦听该事件的 Object。使用 currentTarget 属性始终可以访问侦听事件的 Object。
type FlexNativeMenuEvent.ITEM_CLICK
menuShow 事件  
事件对象类型: mx.events.FlexNativeMenuEvent
属性 FlexNativeMenuEvent.type = mx.events.FlexNativeMenuEvent.MENU_SHOW

显示菜单或子菜单前调度。

FlexNativeMenuEvent.MENU_SHOW 类型常数指示鼠标指针已滑过菜单或子菜单已打开。

此事件类型的事件对象属性包含以下值。并非所有属性对于各种事件都有意义。有关详细信息,请参阅详细的属性说明。

属性
bubbles false
cancelable true
currentTarget 用于定义处理该事件的事件侦听器的 Object。例如,如果您使用 myButton.addEventListener() 注册某个事件侦听器,则 myButton 为 currentTarget 的值。
index -1. 对于这种类型的事件未设置此属性。
item null. 对于这种类型的事件未设置此属性。
label null. 对于这种类型的事件未设置此属性。
nativeMenu 与此事件关联的特定 NativeMenu 实例。
nativeMenuItem null. 对于这种类型的事件未设置此属性。
target 调度该事件的 Object;它不一定是侦听该事件的 Object。使用 currentTarget 属性始终可以访问侦听事件的 Object。
type FlexNativeMenuEvent.MENU_SHOW