Package | flash.ui |
Class | public final class ContextMenu |
Inheritance | ContextMenu ![]() ![]() |
Language Version: | ActionScript 3.0 |
Runtime Versions: | 1.0, 9 |
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.
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 that 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.
See also
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 | ||
clipboardItems : ContextMenuClipboardItems An object that has the following properties of the ContextMenuClipboardItems class:
cut, copy, paste, delete, selectAll. | ContextMenu | ||
clipboardMenu : Boolean Specifies whether or not the clipboard menu should be used. | 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 | ||
link : URLRequest The URLRequest of the link. | ContextMenu | ||
![]() | prototype : Object [static] A reference to the prototype object of a class or function object. | Object |
Method | 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 |
Event | Summary | Defined By | ||
---|---|---|---|---|
![]() | [broadcast event] Dispatched when Flash Player gains operating system focus and becomes active. | EventDispatcher | ||
![]() | [broadcast event] Dispatched when Flash Player loses operating system focus and is becoming inactive. | EventDispatcher | ||
Dispatched when a user first generates a context menu but before the contents of the context menu are displayed. | ContextMenu |
builtInItems | property |
builtInItems:ContextMenuBuiltInItems
[read-write] Language Version: | ActionScript 3.0 |
Runtime Versions: | 1.0, 9 |
An object that has the following properties of the ContextMenuBuiltInItems class:
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
See also
clipboardItems | property |
clipboardItems:ContextMenuClipboardItems
[read-write] Language Version: | ActionScript 3.0 |
Runtime Versions: | 10, 1.5 |
An object that has the following properties of the ContextMenuClipboardItems class:
cut
,
copy
,
paste
,
delete
,
selectAll
.
Setting these properties to
false
disables the corresponding menu items in the
clipboard menu. These properties are enumerable.
public function get clipboardItems():ContextMenuClipboardItems
public function set clipboardItems(value:ContextMenuClipboardItems):void
See also
clipboardItems
property
of the
ContextMenu
object. Create a
ContextMenu
, and set its
clipboardMenu
property to
true
. Add an event handler for the
MENU_SELECT
(generally, right-click) event, and assign the menu to a display object.
In this case, the
copy
and
paste
menus are enabled.
package { import flash.ui.ContextMenu; import flash.events.ContextMenuEvent; import flash.display.Sprite; public class ContextMenuClipboardItemsExample extends Sprite { public function ContextMenuClipboardItemsExample() { var myContextMenu:ContextMenu = new ContextMenu(); myContextMenu.clipboardMenu = true; myContextMenu.addEventListener(ContextMenuEvent.MENU_SELECT, menuSelectHandler); var rc:Sprite = new Sprite(); rc.graphics.beginFill(0xDDDDDD); rc.graphics.drawRect(0,0,100,30); addChild(rc); rc.contextMenu = myContextMenu; } function menuSelectHandler(event:ContextMenuEvent):void { event.contextMenuOwner.contextMenu.clipboardItems.copy = true; event.contextMenuOwner.contextMenu.clipboardItems.paste = true; } } }
clipboardMenu | property |
clipboardMenu:Boolean
[read-write] Language Version: | ActionScript 3.0 |
Runtime Versions: | 10, 1.5 |
Specifies whether or not the clipboard menu should be used. If this value is
true
the
clipboardItems
will determine which items are enabled or disabled on the clipboard menu.
If the
link
property is non-null, this property is ignored.
public function get clipboardMenu():Boolean
public function set clipboardMenu(value:Boolean):void
customItems | property |
customItems:Array
[read-write] Language Version: | ActionScript 3.0 |
Runtime Versions: | 1.0, 9 |
An array of ContextMenuItem objects. Each object in the array represents a context menu item that you have defined. Use this property to add, remove, or modify these custom menu items.
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
See also
link | property |
link:URLRequest
[read-write] Language Version: | ActionScript 3.0 |
Runtime Versions: | 10, 1.5 |
The
URLRequest
of the link. If this property is null, a normal context menu is displayed.
If this property is non-null, the link context menu is displayed, and will operate on the url specified.
If a
link
is specified, the
clipboardMenu
property is ignored.
The default value is
null
.
public function get link():URLRequest
public function set link(value:URLRequest):void
ContextMenu | () | Constructor |
public function ContextMenu()
Language Version: | ActionScript 3.0 |
Runtime Versions: | 1.0, 9 |
Creates a ContextMenu object.
See also
clone | () | method |
public function clone():ContextMenu
Language Version: | ActionScript 3.0 |
Runtime Versions: | 1.0, 9 |
Creates a copy of the specified ContextMenu object. The copy inherits all the properties of the original menu object.
ReturnsContextMenu — A ContextMenu object with all the properties of the original menu object. |
hideBuiltInItems | () | method |
public function hideBuiltInItems():void
Language Version: | ActionScript 3.0 |
Runtime Versions: | 1.0, 9 |
Hides all built-in menu items (except Settings) in the specified ContextMenu object. If the debugger version of Flash Player is running, the Debugging menu item appears, although it is dimmed for SWF files that do not have remote debugging enabled.
This method hides only menu items that appear in the standard context menu; it does not affect items that appear in the edit and 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
.
See also
menuSelect | Event |
flash.events.ContextMenuEvent
flash.events.ContextMenuEvent.MENU_SELECT
Language Version: | ActionScript 3.0 |
Runtime Versions: | 1.0, 9 |
Dispatched when a user first generates a context menu but before the contents of the context menu are displayed. This allows your program to modify the set of context menu items before displaying the menu. The user generates the context menu by right-clicking the pointing device.
Defines the value of thetype
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.
|
ContextMenuExample
to remove the default context menu items from the Stage and add a new menu item, which, if
clicked, changes the color of a square on the Stage. This is accomplished with 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 context
menu items except Print.
addCustomMenuItems()
is called, which places a menu item called
Red to Black
menu selection into 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 out some statements using
trace()
whenever the
context menu is accessed and
Red to Black
is selected. Also the red square
is removed and replaced with a black one.
menuSelect
is added, along with
the associated method
menuSelectHandler
, which simply prints out three statements using
trace()
every time an item in the context menu is opened.
addChildren()
draws a red square and adds it
to the display list, where it is immediately displayed.
myContextMenu
is assigned to the context menu of the
redRectangle
sprite
so that the custom context menu is displayed only when the mouse pointer is over the square.
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 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; } } }