| Package | flash.ui |
| Class | public final class ContextMenu |
| Inheritance | ContextMenu EventDispatcher Object |
You can attach a ContextMenu object to a specific button, movie clip, or text field object, or to an entire movie level. You use the menu property of the Button, MovieClip, or TextField class to do this. For more information about the menu property, see Button.menu, MovieClip.menu, and TextField.menu.
In Flex, only top-level components in the application can have context menus. For example, if a DataGrid control is a child of a TabNavigator or VBox container, the DataGrid control cannot have its own context menu.
To add new items to a ContextMenu object, you create a ContextMenuItem object, and then add that
object to the ContextMenu.customItems array. For more information about creating context
menu items, see the ContextMenuItem class entry.
Flash Player has three types of context menus: the standard menu (which appears when you right-click in Flash Player), the edit menu (which appears when you right-click a selectable or editable text field), and an error menu (which appears when a SWF file has failed to load into Flash Player). Only the standard and edit menus can be modified with the ContextMenu class.
Custom menu items always appear at the top of the Flash Player context menu, above any visible built-in menu items; a separator bar distinguishes built-in and custom menu items. You can add no more than 15 custom items to a context menu. You cannot remove the Settings menu item from the context menu. The Settings menu item is required in Flash so users can access the settings that affect privacy and storage on their computers. You also cannot remove the About menu item, which is required so that users can find out what version of Flash Player they are using.
You must use the ContextMenu() constructor to create a ContextMenu object before
calling its methods.
| ContextMenuItem class, flash.display.InteractiveObject.contextMenu |
| Property | Defined by | ||
|---|---|---|---|
| builtInItems : ContextMenuBuiltInItems
An object that has the following properties of the ContextMenuBuiltInItems class:
forwardAndBack, loop,
play, print, quality,
rewind, save, and zoom. | ContextMenu | ||
![]() | constructor : Object
A reference to the class object or constructor function for a given object instance.
| Object | |
| customItems : Array
An array of ContextMenuItem objects.
| ContextMenu | ||
![]() | prototype : Object
[static]
A reference to the prototype object of a class or function object.
| Object | |
| Event | Summary | Defined by | ||
|---|---|---|---|---|
Flash Player dispatches the menuSelect event when a user first generates a
context menu but before the contents of the context menu are displayed. | ContextMenu | |||
| Function | Defined by | ||
|---|---|---|---|
|
Creates a ContextMenu object.
| ContextMenu | ||
![]() |
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 | |
|
Creates a copy of the specified ContextMenu object.
| ContextMenu | ||
![]() |
Dispatches an event into the event flow.
| EventDispatcher | |
![]() |
Checks whether the EventDispatcher object has any listeners registered for a specific type
of event.
| EventDispatcher | |
![]() |
Indicates whether an object has a specified property defined.
| Object | |
|
Hides all built-in menu items (except Settings) in the specified ContextMenu object.
| ContextMenu | ||
![]() |
Indicates whether an instance of the Object class is in the prototype chain of the object specified
as the parameter.
| Object | |
![]() |
Indicates whether the specified property exists and is enumerable.
| Object | |
![]() |
Removes a listener from the EventDispatcher object.
| EventDispatcher | |
![]() |
Sets the availability of a dynamic property for loop operations.
| Object | |
![]() |
Returns the string representation of the specified object.
| Object | |
![]() |
Returns the primitive value of the specified object.
| Object | |
![]() |
Checks whether an event listener is registered with this EventDispatcher object or any of
its ancestors for the specified event type.
| EventDispatcher | |
builtInItems:ContextMenuBuiltInItems [read-write]forwardAndBack, loop,
play, print, quality,
rewind, save, and zoom.
Setting these properties to false removes the corresponding menu items from the
specified ContextMenu object. These properties are enumerable and are set to true by
default.
public function get builtInItems():ContextMenuBuiltInItems
public function set builtInItems(value:ContextMenuBuiltInItems):void
| ContextMenuBuiltInItems class, ContextMenu.hideBuiltInItems() |
customItems:Array [read-write]To add new menu items, you create a ContextMenuItem object and then add it to the
customItems array (for example, by using Array.push()). For more information about creating
menu items, see the ContextMenuItem class entry.
public function get customItems():Array
public function set customItems(value:Array):void
| flash.display.InteractiveObject.contextMenu |
flash.events.ContextMenuEvent
flash.events.ContextMenuEvent.MENU_SELECT
menuSelect event when a user first generates a
context menu but before the contents of the context menu are displayed. The user can then
modify the set of context menu items based on the mouseTarget before
displaying the menu. The user generates
the context menu by clicking the secondary button of the user's pointing device.
This event has the following characteristics:
| Properties | Values |
|---|---|
target | The ContextMenu object that is about to be displayed.
The target is not always the object in the display list
that registered the event listener. Use the currentTarget
property to access the object in the display list that is currently processing the event. |
bubbles | No. |
currentTarget | Indicates the object that is actively processing the Event object with an event listener. |
cancelable | No. There is no default behavior to cancel. |
public function ContextMenu()
| ContextMenu.customItems, ContextMenu.hideBuiltInItems() |
public function clone():ContextMenu
ContextMenu —
A ContextMenu object with all the properties of the original menu object.
|
public function hideBuiltInItems():void
This method hides only menu items that appear in the standard context menu; it does not affect items that appear in the edit or error menus.
This method works by setting all the Boolean members of my_cm.builtInItems to false. You can selectively make a built-in item visible by setting its
corresponding member in my_cm.builtInItems to true.
| ContextMenuBuiltInItems class, ContextMenu.builtInItems |
ContextMenuExample
to remove the normal right-click menu items from the stage and add a new menu item, which, if
clicked, will change the color of a square on the stage. This is accomplished using the following
steps:
myContextMenu is declared and then assigned to a new ContextMenu
object and a property redRectangle of type Sprite is declared.removeDefaultItems() is called, which removes all built-in right-click
menu items except print.addCustomMenuItems() is called, which places an item called
Red to Black menu selection into the defaultItems Array using the
push() method of Array. A menuItemSelect event listener is added to the
ContextMenuItem object and the associated method is called menuItemSelectHandler().
This method prints out some statements using trace() whenever the
right-click menu is accessed and Red to Black is selected. Also the red square
is removed and replaced with a black one when Red to Black is selected.menuSelect is added, along with
associated method menuSelectHandler, which simply prints out three statements using
trace() every time an item in the right-click menu is opened (by right-clicking).addChildren(), which draws a red square and adds it
to the display list, which promptly displays it.myContextMenu is assigned to redRectangle's context menu
so that the custom context menu will only be displayed when the mouse is over the square.
package {
import flash.ui.ContextMenu;
import flash.ui.ContextMenuItem;
import flash.events.ContextMenuEvent;
import flash.events.ContextMenuEvent;
import flash.display.Sprite;
import flash.display.Shape;
import flash.text.TextField;
public class ContextMenuExample extends Sprite {
private var myContextMenu:ContextMenu;
private var menuLabel:String = "Reverse Colors";
private var textLabel:String = "Right Click";
private var redRectangle:Sprite;
private var label:TextField;
private var size:uint = 100;
private var black:uint = 0x000000;
private var red:uint = 0xFF0000;
public function ContextMenuExample() {
myContextMenu = new ContextMenu();
removeDefaultItems();
addCustomMenuItems();
myContextMenu.addEventListener(ContextMenuEvent.MENU_SELECT, menuSelectHandler);
addChildren();
redRectangle.contextMenu = myContextMenu;
}
private function addChildren():void {
redRectangle = new Sprite();
redRectangle.graphics.beginFill(red);
redRectangle.graphics.drawRect(0, 0, size, size);
addChild(redRectangle);
redRectangle.x = size;
redRectangle.y = size;
label = createLabel();
redRectangle.addChild(label);
}
private function removeDefaultItems():void {
myContextMenu.hideBuiltInItems();
var defaultItems:ContextMenuBuiltInItems = myContextMenu.builtInItems;
defaultItems.print = true;
}
private function addCustomMenuItems():void {
var item:ContextMenuItem = new ContextMenuItem(menuLabel);
myContextMenu.customItems.push(item);
item.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, menuItemSelectHandler);
}
private function menuSelectHandler(event:ContextMenuEvent):void {
trace("menuSelectHandler: " + event);
}
private function menuItemSelectHandler(event:ContextMenuEvent):void {
trace("menuItemSelectHandler: " + event);
var textColor:uint = (label.textColor == black) ? red : black;
var bgColor:uint = (label.textColor == black) ? black : red;
redRectangle.graphics.clear();
redRectangle.graphics.beginFill(bgColor);
redRectangle.graphics.drawRect(0, 0, size, size);
label.textColor = textColor;
}
private function createLabel():TextField {
var txtField:TextField = new TextField();
txtField.text = textLabel;
return txtField;
}
}
}
Send me an e-mail when comments are added to this page | Comment Report
Current page: http://livedocs.adobe.com/labs/flashauthoringpreview/flash/ui/ContextMenu.html