flash.events

# ContextMenuEvent - AS3

Package | flash.events
Class | public class ContextMenuEvent
Inheritance | ContextMenuEvent Event Object

Language Version: | ActionScript 3.0

Runtime Versions: | AIR 1.0, Flash Player 9

An InteractiveObject dispatches a ContextMenuEvent object when the user opens or interacts with the context menu. There are two types of ContextMenuEvent objects:

- `ContextMenuEvent.MENU_ITEM_SELECT`
- `ContextMenuEvent.MENU_SELECT`

View the examples

Related API Elements

ContextMenu class
ContextMenuItem class

Public Properties
Hide Inherited Public Properties
Show Inherited Public Properties

| Property | Defined By
--- | --- | ---
|  | bubbles : Boolean [read-only] Indicates whether an event is a bubbling event. | Event
|  | cancelable : Boolean [read-only] Indicates whether the behavior associated with the event can be prevented. | Event
|  | constructor : Object A reference to the class object or constructor function for a given object instance. | Object
|  | contextMenuOwner : InteractiveObject The display list object to which the menu is attached. | ContextMenuEvent
|  | currentTarget : Object [read-only] The object that is actively processing the Event object with an event listener. | Event
|  | eventPhase : uint [read-only] The current phase in the event flow. | Event
|  | isMouseTargetInaccessible : Boolean Indicates whether the mouseTarget property was set to null for security reasons. | ContextMenuEvent
|  | mouseTarget : InteractiveObject The display list object on which the user right-clicked to display the context menu. | ContextMenuEvent
|  | target : Object [read-only] The event target. | Event
|  | type : String [read-only] The type of event. | Event

Public Methods
Hide Inherited Public Methods
Show Inherited Public Methods

| Method | Defined By
--- | --- | ---
|  | ContextMenuEvent(type:String, bubbles:Boolean = false, cancelable:Boolean = false, mouseTarget:InteractiveObject = null, contextMenuOwner:InteractiveObject = null) Creates an Event object that contains specific information about menu events. | ContextMenuEvent
|  | clone():Event [override] Creates a copy of the ContextMenuEvent object and sets the value of each property to match that of the original. | ContextMenuEvent
|  | formatToString(className:String, ... arguments):String A utility function for implementing the toString() method in custom ActionScript 3.0 Event classes. | Event
|  | hasOwnProperty(name:String):Boolean Indicates whether an object has a specified property defined. | Object
|  | isDefaultPrevented():Boolean Checks whether the preventDefault() method has been called on the event. | Event
|  | isPrototypeOf(theClass:Object):Boolean Indicates whether an instance of the Object class is in the prototype chain of the object specified as the parameter. | Object
|  | preventDefault():void Cancels an event's default behavior if that behavior can be canceled. | Event
|  | propertyIsEnumerable(name:String):Boolean Indicates whether the specified property exists and is enumerable. | Object
|  | setPropertyIsEnumerable(name:String, isEnum:Boolean = true):void Sets the availability of a dynamic property for loop operations. | Object
|  | stopImmediatePropagation():void Prevents processing of any event listeners in the current node and any subsequent nodes in the event flow. | Event
|  | stopPropagation():void Prevents processing of any event listeners in nodes subsequent to the current node in the event flow. | Event
|  | toLocaleString():String Returns the string representation of this object, formatted according to locale-specific conventions. | Object
|  | toString():String [override] Returns a string that contains all the properties of the ContextMenuEvent object. | ContextMenuEvent
|  | valueOf():Object Returns the primitive value of the specified object. | Object

Public Constants
Hide Inherited Public Constants
Show Inherited Public Constants

| Constant | Defined By
--- | --- | ---
|  | MENU_ITEM_SELECT : String = "menuItemSelect" [static] Defines the value of the type property of a menuItemSelect event object. | ContextMenuEvent
|  | MENU_SELECT : String = "menuSelect" [static] Defines the value of the type property of a menuSelect event object. | ContextMenuEvent

Property Detail

### contextMenuOwner

property

`contextMenuOwner:InteractiveObject`

Language Version: | ActionScript 3.0

Runtime Versions: | AIR 1.0, Flash Player 9

The display list object to which the menu is attached. This could be the mouse target (`mouseTarget`) or one of its ancestors in the display list.

Implementation
`public function get contextMenuOwner():InteractiveObject`
`public function set contextMenuOwner(value:InteractiveObject):void`

### isMouseTargetInaccessible

property

`isMouseTargetInaccessible:Boolean`

Language Version: | ActionScript 3.0

Runtime Versions: | AIR 1.0, Flash Player 10

Indicates whether the `mouseTarget` property was set to `null` for security reasons. If the nominal value of `menuTarget` would be a reference to a `DisplayObject` in another security sandbox, then `menuTarget` is set to `null` unless there is permission in both directions across this sandbox boundary. Permission is established by calling `Security.allowDomain()` from a SWF file, or providing a policy file from the server of an image file, and setting the `LoaderContext.checkPolicyFile` flag when loading the image.

Implementation
`public function get isMouseTargetInaccessible():Boolean`
`public function set isMouseTargetInaccessible(value:Boolean):void`

Related API Elements

ContextMenuEvent.mouseTarget
Security.allowDomain()
LoaderContext.checkPolicyFile

### mouseTarget

property

`mouseTarget:InteractiveObject`

Language Version: | ActionScript 3.0

Runtime Versions: | AIR 1.0, Flash Player 9

The display list object on which the user right-clicked to display the context menu. This could be the display list object to which the menu is attached (`contextMenuOwner`) or one of its display list descendants.

The value of this property can be `null` in two circumstances: if there no mouse target, for example when you mouse over something from the background; or there is a mouse target, but it is in a security sandbox to which you don't have access. Use the `isMouseTargetInaccessible()` property to determine which of these reasons applies.

Implementation
`public function get mouseTarget():InteractiveObject`
`public function set mouseTarget(value:InteractiveObject):void`

Related API Elements

ContextMenuEvent.isMouseTargetInaccessible
Constructor Detail

### ContextMenuEvent

()
Constructor

`public function ContextMenuEvent(type:String, bubbles:Boolean = false, cancelable:Boolean = false, mouseTarget:InteractiveObject = null, contextMenuOwner:InteractiveObject = null)`

Language Version: | ActionScript 3.0

Runtime Versions: | AIR 1.0, Flash Player 9

Creates an Event object that contains specific information about menu events. Event objects are passed as parameters to event listeners.

Parameters

| `type:String` — The type of the event. Possible values are:

- `ContextMenuEvent.MENU_ITEM_SELECT`
- `ContextMenuEvent.MENU_SELECT`

| `bubbles:Boolean` (default = `false`)`` — Determines whether the Event object participates in the bubbling stage of the event flow. Event listeners can access this information through the inherited `bubbles` property.
| `cancelable:Boolean` (default = `false`)`` — Determines whether the Event object can be canceled. Event listeners can access this information through the inherited `cancelable` property.
| `mouseTarget:InteractiveObject` (default = `null`)`` — The display list object on which the user right-clicked to display the context menu. This could be the `contextMenuOwner` or one of its display list descendants.
| `contextMenuOwner:InteractiveObject` (default = `null`)`` — The display list object to which the menu is attached. This could be the `mouseTarget` or one of its ancestors in the display list.

Related API Elements

ContextMenuEvent.MENU_ITEM_SELECT
ContextMenuEvent.MENU_SELECT
Method Detail

### clone

()
method

`override public function clone():Event`

Language Version: | ActionScript 3.0

Runtime Versions: | AIR 1.0, Flash Player 9

Creates a copy of the ContextMenuEvent object and sets the value of each property to match that of the original.

Returns

| `Event` — A new ContextMenuEvent object with property values that match those of the original.

### toString

()
method

`override public function toString():String`

Language Version: | ActionScript 3.0

Runtime Versions: | AIR 1.0, Flash Player 9

Returns a string that contains all the properties of the ContextMenuEvent object. The string is in the following format:

`[ContextMenuEvent type=value bubbles=value cancelable=value ... contextMenuOwner=value]`

Returns

| `String` — A string that contains all the properties of the ContextMenuEvent object.

Constant Detail

### MENU_ITEM_SELECT

Constant

`public static const MENU_ITEM_SELECT:String = "menuItemSelect"`

Language Version: | ActionScript 3.0

Runtime Versions: | AIR 1.0, Flash Player 9

Defines the value of the `type` property of a `menuItemSelect` event object.

This event has the following properties:

Property | Value
--- | ---
`bubbles` | `false`
`cancelable` | `false`; there is no default behavior to cancel.
`contextMenuOwner` | The display list object to which the menu is attached.
`currentTarget` | The object that is actively processing the Event object with an event listener.
`mouseTarget` | The display list object on which the user right-clicked to display the context menu.
`target` | The ContextMenuItem object that has been selected. 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.

Related API Elements

flash.ui.ContextMenuItem.menuItemSelect

### MENU_SELECT

Constant

`public static const MENU_SELECT:String = "menuSelect"`

Language Version: | ActionScript 3.0

Runtime Versions: | AIR 1.0, Flash Player 9

Defines the value of the `type` property of a `menuSelect` event object.

This event has the following properties:

Property | Value
--- | ---
`bubbles` | `false`
`cancelable` | `false`; there is no default behavior to cancel.
`contextMenuOwner` | The display list object to which the menu is attached.
`currentTarget` | The object that is actively processing the Event object with an event listener.
`mouseTarget` | The display list object on which the user right-clicked to display the context menu.
`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.

Related API Elements

flash.ui.ContextMenu.menuSelect
Examples How to use this example
ContextMenuEventExample.as
The following example uses the `ContextMenuEventExample` class to remove the default context menu items from the Stage and add a new menu item that changes the color of a square on the Stage. The example carries out the following tasks:

1. The `myContextMenu` property is declared and then assigned to a new ContextMenu object and the `redRectangle` property (of type Sprite) is declared.
2. The `removeDefaultItems()` method is called. This method removes all built-in context menu items except Print.
3. The `addCustomMenuItems()` method is called. This method places a `Reverse Colors` menu item in the `defaultItems` array by 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 some `trace()` statements whenever the user selects Reverse Colors from the context menu. In addition the red square becomes black and the black text becomes red.
4. Back in the constructor, a `menuSelect` event listener is added, along with the associated method `menuSelectHandler()`, which simply prints out three `trace()` statements every time an item in the context menu is selected.
5. The constructor calls `addChildren()`, which draws a red square and adds it to the display list, which immediately displays the square.
6. Finally, `myContextMenu` is assigned to the context menu of the `redRectangle` property, so that the custom context menu is displayed only when the mouse pointer is over the square.

Copy

    package {
        import flash.ui.ContextMenu;
        import flash.ui.ContextMenuItem;
        import flash.ui.ContextMenuBuiltInItems;
        import flash.events.ContextMenuEvent;
        import flash.display.Sprite;
        import flash.display.Shape;
        import flash.text.TextField;

        public class ContextMenuEventExample 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 ContextMenuEventExample() {
                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;
            }
        }
    }

© 2015 Adobe Systems Incorporated. All rights reserved.
Mon Apr 10 2017, 12:28 PM -07:00