window.runtime propertywindow.runtime.flash.display.NativeMenu
InheritanceNativeMenu Inheritance EventDispatcher
Runtime Versions:  1.0

The NativeMenu class contains methods and properties for defining menus.

AIR supports the following types of menus:

MenuInstanceCapability testSupported onDefault provided?
Application NativeApplication.nativeApplication.menu NativeApplication.supportsMenu Mac OS XYes
Window NativeWindow.menu NativeWindow.supportsMenu Windows, LinuxNo
Dock icon NativeApplication.nativeApplication.icon.menu NativeApplication.supportsDockIcon Mac OS XYes
System tray icon NativeApplication.nativeApplication.icon.menu NativeApplication.supportsSystemTrayIcon Windows, LinuxNo
Context InteractiveObject.contextMenu Always supportedAllNo
Pop-upAny NativeMenu instanceAlways supportedAllNo

A menu can contain items for commands, submenus, and separator lines. Menu items are added to a menu with the addItem(), addItemAt(), addSubmenu(), and addSubmenuAt() methods. The display order of a menu's items matches the order of the items in the menu's items array.

Submenus are attached to their parent menu through the submenu property of the matching menu item in the parent menu. The root menu of window and application menus must contain only submenu items; items without submenus may not be displayed and are contrary to user expectation for these types of menus.

Menus dispatch select events when a command item in the menu or one of its submenus is selected. (Submenu and separator items are not selectable.) The target property of the event object references the selected item.

Menus dispatch displaying events just before the menu is displayed. You can use this event to update the contents of the menu based on the current state of the application.

See also

NativeMenuItem
NativeWindow.menu
DockIcon
SystemTrayIcon
NativeApplication.menu
NativeApplication.icon


Properties
 PropertyDefined By
  items : Array
The array of NativeMenuItem objects in this menu.
NativeMenu
  numItems : int
[read-only] The number of NativeMenuItem objects in this menu.
NativeMenu
  parent : NativeMenu
[read-only] The parent menu.
NativeMenu
Public Methods
 MethodDefined By
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Registers an event listener object with an EventDispatcher object so that the listener receives notification of an event.
EventDispatcher
  
Adds a menu item at the bottom of the menu.
NativeMenu
  
Inserts a menu item at the specified position.
NativeMenu
  
Adds a submenu to the menu by inserting a new menu item.
NativeMenu
  
Adds a submenu to the menu by inserting a new menu item at the specified position.
NativeMenu
  
Creates a copy of the menu and all items.
NativeMenu
  
Reports whether this menu contains the specified menu item.
NativeMenu
 Inherited
Dispatches an event into the event flow.
EventDispatcher
  
display(stage:Stage, stageX:Number, stageY:Number):void
Pops up this menu at the specified location.
NativeMenu
  
Gets the menu item at the specified index.
NativeMenu
  
Gets the menu item with the specified name.
NativeMenu
  
Gets the position of the specified item.
NativeMenu
 Inherited
Checks whether the EventDispatcher object has any listeners registered for a specific type of event.
EventDispatcher
  
Removes all items from the menu.
NativeMenu
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
Removes a listener from the EventDispatcher object.
EventDispatcher
  
Removes the specified menu item.
NativeMenu
  
Removes and returns the menu item at the specified index.
NativeMenu
  
setItemIndex(item:NativeMenuItem, index:int):void
Moves a menu item to the specified position.
NativeMenu
 Inherited
Checks whether an event listener is registered with this EventDispatcher object or any of its ancestors for the specified event type.
EventDispatcher
Events
 Event Summary Defined By
 Inherited[broadcast event] Dispatched when the Flash Player or AIR application gains operating system focus and becomes active.EventDispatcher
 Inherited[broadcast event] Dispatched when the Flash Player or AIR application operating loses system focus and is becoming inactive.EventDispatcher
  Dispatched by this NativeMenu object immediately before the menu is to be displayed.NativeMenu
  Dispatched by this NativeMenu object when one of its menu items or an item in one of its descendant submenus is selected.NativeMenu
Property Detail
itemsproperty
items:Array
Runtime Versions:  1.0

The array of NativeMenuItem objects in this menu.

The array is sorted in display order.

Note: This property is read-only in AIR 1.0. It became read/write in AIR 1.1.

numItemsproperty 
numItems:int  [read-only]
Runtime Versions:  1.0

The number of NativeMenuItem objects in this menu.

parentproperty 
parent:NativeMenu  [read-only]
Runtime Versions:  1.0

The parent menu.

The parent of the root (top-level) menu object is null.

Method Detail
addItem()method
function addItem(item:NativeMenuItem):NativeMenuItem
Runtime Versions:  1.0

Adds a menu item at the bottom of the menu.

Parameters

item:NativeMenuItem — The NativeMenuItem object to add at the bottom of the menu.

Returns
NativeMenuItem

Throws
— If item is null.
 
— If item is a member of another menu.
addItemAt()method 
function addItemAt(item:NativeMenuItem, index:int):NativeMenuItem
Runtime Versions:  1.0

Inserts a menu item at the specified position.

Parameters

item:NativeMenuItem — The NativeMenuItem object to insert.
 
index:int — The (zero-based) position in menu at which to insert the menu item.

Returns
NativeMenuItem

Throws
— If item is null.
 
— If item is a member of another menu.
 
— If the index is outside the bounds of the menu's items array.
addSubmenu()method 
function addSubmenu(submenu:NativeMenu, label:String):NativeMenuItem
Runtime Versions:  1.0

Adds a submenu to the menu by inserting a new menu item.

Calling the addSubMenu() method is equivalent to creating a new menu item, adding it to the menu, and assigning a NativeMenu object to the item's submenu property.

Parameters

submenu:NativeMenu — The NativeMenu object that defines the submenu to be added.
 
label:String — The display label for the menu item to be added.

Returns
NativeMenuItem — The NativeMenuItem object created for the submenu.
addSubmenuAt()method 
function addSubmenuAt(submenu:NativeMenu, index:int, label:String):NativeMenuItem
Runtime Versions:  1.0

Adds a submenu to the menu by inserting a new menu item at the specified position.

Calling the addSubMenuAt() method is equivalent to creating a new menu item, inserting it at the desired position in the menu, and assigning a NativeMenu object to the item's submenu property.

Parameters

submenu:NativeMenu — The NativeMenu object that defines the submenu to be added.
 
index:int — The position in the items array of this menu at which to insert the menu item to be added.
 
label:String — The display label for the menu item to be added.

Returns
NativeMenuItem — The NativeMenuItem object created for the submenu.
clone()method 
function clone():NativeMenu
Runtime Versions:  1.0

Creates a copy of the menu and all items.

Returns
NativeMenu
containsItem()method 
function containsItem(item:NativeMenuItem):Boolean
Runtime Versions:  1.0

Reports whether this menu contains the specified menu item.

Parameters

item:NativeMenuItem — The NativeMenuItem object to look up.

Returns
Booleantrue if item is in this menu.
display()method 
function display(stage:Stage, stageX:Number, stageY:Number):void
Runtime Versions:  1.0

Pops up this menu at the specified location.

Parameters

stage:Stage — The Stage object on which to display this menu.
 
stageX:Number — The number of horizontal pixels, relative to the origin of stage, at which to display this menu.
 
stageY:Number — The number of vertical pixels, relative to the origin of stage, at which to display this menu.

getItemAt()method 
function getItemAt(index:int):NativeMenuItem
Runtime Versions:  1.0

Gets the menu item at the specified index.

Parameters

index:int — The (zero-based) position of the item to return.

Returns
NativeMenuItem — The NativeMenuItem object at the specified position in the menu.

Throws
— If index is outside the bounds of the menu's items array.
getItemByName()method 
function getItemByName(name:String):NativeMenuItem
Runtime Versions:  1.0

Gets the menu item with the specified name.

Note: The name property of menu items is not assigned by default.

Parameters

name:String — The string to look up.

Returns
NativeMenuItem — The NativeMenuItem object with the specified name or null, if no such item exists in the menu.
getItemIndex()method 
function getItemIndex(item:NativeMenuItem):int
Runtime Versions:  1.0

Gets the position of the specified item.

Parameters

item:NativeMenuItem — The NativeMenuItem object to look up.

Returns
int — The (zero-based) position of the specified item in this menu or null, if the item is not in this menu.
removeAllItems()method 
function removeAllItems():void
Runtime Versions:  1.0

Removes all items from the menu.

removeItem()method 
function removeItem(item:NativeMenuItem):NativeMenuItem
Runtime Versions:  1.0

Removes the specified menu item.

Parameters

item:NativeMenuItem — The NativeMenuItem object to remove from this menu.

Returns
NativeMenuItem

Throws
— If the item is not in this menu
removeItemAt()method 
function removeItemAt(index:int):NativeMenuItem
Runtime Versions:  1.0

Removes and returns the menu item at the specified index.

Parameters

index:int — The (zero-based) position of the item to remove.

Returns
NativeMenuItem — The NativeMenuItem object removed.

Throws
— If index is outside the bounds of this menu's items array.
setItemIndex()method 
function setItemIndex(item:NativeMenuItem, index:int):void
Runtime Versions:  1.0

Moves a menu item to the specified position. If the item is not already in the menu, calling this method adds the item to the menu.

Parameters

item:NativeMenuItem — The NativeMenuItem object to move.
 
index:int — The (zero-based) position in the menu to which to move the item.


Throws
— If index is outside the bounds of the menu's items array.
Event Detail
displaying Event
Event Object Type: flash.events.Event
property Event.type = flash.events.Event.DISPLAYING
Runtime Versions:  1.0

Dispatched by this NativeMenu object immediately before the menu is to be displayed.

Listen to this event to update the menu before it is displayed. Displaying events are also dispatched by the items in a menu.

The Event.DISPLAYING constant defines the value of the type property of a displaying event object.

Note: This event does not go through a "capture phase" and is dispatched directly to the target, whether the target is on the display list or not.

This event has the following properties:

PropertyValue
bubblesfalse
cancelablefalse
currentTargetThe object that is actively processing the Event object with an event listener.
targetThe object that is about to be displayed.
select Event  
Event Object Type: flash.events.Event
property Event.type = flash.events.Event.SELECT
Runtime Versions:  1.0

Dispatched by this NativeMenu object when one of its menu items or an item in one of its descendant submenus is selected.

A select event bubbles from a menu item to its containing menu and on up through the parent menu chain to the root menu object. The target property of the event object references the selected NativeMenuItem object; the currentTarget property references this NativeMenu object.

The Event.SELECT constant defines the value of the type property of a select event object.

This event has the following properties:

PropertyValue
bubblesfalse
cancelablefalse; there is no default behavior to cancel.
currentTargetThe object that is actively processing the Event object with an event listener.
targetThe object on which an item has been selected.