flash.events
public class ContextMenuEvent
继承ContextMenuEvent Inheritance Event Inheritance Object

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

当用户生成上下文菜单或与上下文菜单交互时,对象将调度 ContextMenuEvent 对象。用户可以通过单击用户指针设备(通常为鼠标或轨迹球)的辅助按钮来生成上下文菜单。有两种类型的 ContextMenuEvent 对象:

查看示例

另请参见

ContextMenu 类
ContextMenuItem 类


公共属性
 属性定义方
 Inheritedbubbles : Boolean
[只读 (read-only)] 指示事件是否为冒泡事件。
Event
 Inheritedcancelable : Boolean
[只读 (read-only)] 指示是否可以阻止与事件相关联的行为。
Event
 Inheritedconstructor : Object
对类对象或给定对象实例的构造函数的引用。
Object
  contextMenuOwner : InteractiveObject
菜单附加到的显示列表对象。
ContextMenuEvent
 InheritedcurrentTarget : Object
[只读 (read-only)] 当前正在使用某个事件侦听器处理 Event 对象的对象。
Event
 InheritedeventPhase : uint
[只读 (read-only)] 事件流中的当前阶段。
Event
  isMouseTargetInaccessible : Boolean
指示 mouseTarget 属性是否因某些安全原因设置为 null。
ContextMenuEvent
  mouseTarget : InteractiveObject
用户右键单击以显示上下文菜单的显示列表对象。
ContextMenuEvent
 Inheritedprototype : Object
[静态] 对类或函数对象的原型对象的引用。
Object
 Inheritedtarget : Object
[只读 (read-only)] 事件目标。
Event
 Inheritedtype : String
[只读 (read-only)] 事件的类型。
Event
公共方法
 方法定义方
  
ContextMenuEvent(type:String, bubbles:Boolean = false, cancelable:Boolean = false, mouseTarget:InteractiveObject = null, contextMenuOwner:InteractiveObject = null)
创建一个 Event 对象,其中包含有关菜单事件的特定信息。
ContextMenuEvent
  
创建 ContextMenuEvent 对象的副本,并设置每个属性的值以匹配原始属性值。
ContextMenuEvent
 Inherited
formatToString(className:String, ... arguments):String
用于在自定义 ActionScript 3.0 Event 类中实现 toString() 方法的实用程序函数。
Event
 Inherited
指示对象是否已经定义了指定的属性。
Object
 Inherited
检查是否已对事件调用 preventDefault() 方法。
Event
 Inherited
指示 Object 类的实例是否在指定为参数的对象的原型链中。
Object
 Inherited
如果可以取消事件的默认行为,则取消该行为。
Event
 Inherited
指示指定的属性是否存在、是否可枚举。
Object
 Inherited
设置循环操作动态属性的可用性。
Object
 Inherited
防止对事件流中当前节点中和所有后续节点中的事件侦听器进行处理。
Event
 Inherited
防止对事件流中当前节点的后续节点中的所有事件侦听器进行处理。
Event
  
返回一个字符串,其中包含 ContextMenuEvent 对象的所有属性。
ContextMenuEvent
 Inherited
返回指定对象的原始值。
Object
公共常量
 常量定义方
 InheritedACTIVATE : String = "activate"
[静态] ACTIVATE 常量定义 activate 事件对象的 type 属性的值。
Event
 InheritedADDED : String = "added"
[静态] Event.ADDED 常量定义 added 事件对象的 type 属性值。
Event
 InheritedADDED_TO_STAGE : String = "addedToStage"
[静态] Event.ADDED_TO_STAGE 常量定义 addedToStage 事件对象的 type 属性值。
Event
 InheritedCANCEL : String = "cancel"
[静态] Event.CANCEL 常量定义 cancel 事件对象的 type 属性的值。
Event
 InheritedCHANGE : String = "change"
[静态] Event.CHANGE 常量定义 change 事件对象的 type 属性值。
Event
 InheritedCLEAR : String = "clear"
[静态] Event.CLEAR 常量定义 clear 事件对象的 type 属性的值。
Event
 InheritedCLOSE : String = "close"
[静态] Event.CLOSE 常量定义 close 事件对象的 type 属性的值。
Event
 InheritedAIR-only CLOSING : String = "closing"
[静态] Event.CLOSING 常量定义 closing 事件对象的 type 属性值。
Event
 InheritedCOMPLETE : String = "complete"
[静态] Event.COMPLETE 常量定义 complete 事件对象的 type 属性值。
Event
 InheritedCONNECT : String = "connect"
[静态] Event.CONNECT 常量定义 connect 事件对象的 type 属性值。
Event
 InheritedCOPY : String = "copy"
[静态] 定义 copy 事件对象的 type 属性值。
Event
 InheritedCUT : String = "cut"
[静态] 定义 cut 事件对象的 type 属性值。
Event
 InheritedDEACTIVATE : String = "deactivate"
[静态] Event.DEACTIVATE 常量定义 deactivate 事件对象的 type 属性值。
Event
 InheritedDISPLAYING : String = "displaying"
[静态] Event.DISPLAYING 常量定义 displaying 事件对象的 type 属性值。
Event
 InheritedENTER_FRAME : String = "enterFrame"
[静态] Event.ENTER_FRAME 常量定义 enterFrame 事件对象的 type 属性值。
Event
 InheritedEXIT_FRAME : String = "exitFrame"
[静态] Event.EXIT_FRAME 常量定义 exitFrame 事件对象的 type 属性的值。
Event
 InheritedAIR-only EXITING : String = "exiting"
[静态] Event.EXITING 常量定义 exiting 事件对象的 type 属性值。
Event
 InheritedFRAME_CONSTRUCTED : String = "frameConstructed"
[静态] Event.FRAME_CONSTRUCTED 常量定义 frameConstructed 事件对象的 type 属性的值。
Event
 InheritedFULLSCREEN : String = "fullScreen"
[静态] Event.FULL_SCREEN 常量定义 fullScreen 事件对象的 type 属性值。
Event
 InheritedAIR-only HTML_BOUNDS_CHANGE : String = "htmlBoundsChange"
[静态] Event.HTML_BOUNDS_CHANGE 常量定义 htmlBoundsChange 事件对象的 type 属性值。
Event
 InheritedAIR-only HTML_DOM_INITIALIZE : String = "htmlDOMInitialize"
[静态] Event.HTML_DOM_INITIALIZE 常量定义 htmlDOMInitialize 事件对象的 type 属性值。
Event
 InheritedAIR-only HTML_RENDER : String = "htmlRender"
[静态] Event.HTML_RENDER 常量定义 htmlRender 事件对象的 type 属性值。
Event
 InheritedID3 : String = "id3"
[静态] Event.ID3 常量定义 id3 事件对象的 type 属性值。
Event
 InheritedINIT : String = "init"
[静态] Event.INIT 常量定义 init 事件对象的 type 属性值。
Event
 InheritedAIR-only LOCATION_CHANGE : String = "locationChange"
[静态] Event.LOCATION_CHANGE 常量定义 locationChange 事件对象的 type 属性值。
Event
  MENU_ITEM_SELECT : String = "menuItemSelect"
[静态] 定义 menuItemSelect 事件对象的 type 属性值。
ContextMenuEvent
  MENU_SELECT : String = "menuSelect"
[静态] 定义 menuSelect 事件对象的 type 属性值。
ContextMenuEvent
 InheritedMOUSE_LEAVE : String = "mouseLeave"
[静态] Event.MOUSE_LEAVE 常量定义 mouseLeave 事件对象的 type 属性值。
Event
 InheritedAIR-only NETWORK_CHANGE : String = "networkChange"
[静态] Event.NETWORK_CHANGE 常量定义 networkChange 事件对象的 type 属性值。
Event
 InheritedOPEN : String = "open"
[静态] Event.OPEN 常量用于定义 open 事件对象的 type 属性值。
Event
 InheritedPASTE : String = "paste"
[静态] Event.PASTE 常量定义 paste 事件对象的 type 属性的值。
Event
 InheritedREMOVED : String = "removed"
[静态] Event.REMOVED 常量定义 removed 事件对象的 type 属性值。
Event
 InheritedREMOVED_FROM_STAGE : String = "removedFromStage"
[静态] Event.REMOVED_FROM_STAGE 常量定义 removedFromStage 事件对象的 type 属性值。
Event
 InheritedRENDER : String = "render"
[静态] Event.RENDER 常量定义 render 事件对象的 type 属性的值。
Event
 InheritedRESIZE : String = "resize"
[静态] Event.RESIZE 常量定义 resize 事件对象的 type 属性的值。
Event
 InheritedSCROLL : String = "scroll"
[静态] Event.SCROLL 常量定义 scroll 事件对象的 type 属性值。
Event
 InheritedSELECT : String = "select"
[静态] Event.SELECT 常量定义 select 事件对象的 type 属性的值。
Event
 InheritedSELECT_ALL : String = "selectAll"
[静态] Event.SELECT_ALL 常量定义 selectAll 事件对象的 type 属性的值。
Event
 InheritedSOUND_COMPLETE : String = "soundComplete"
[静态] Event.SOUND_COMPLETE 常量定义 soundComplete 事件对象的 type 属性值。
Event
 InheritedTAB_CHILDREN_CHANGE : String = "tabChildrenChange"
[静态] Event.TAB_CHILDREN_CHANGE 常量定义 tabChildrenChange 事件对象的 type 属性值。
Event
 InheritedTAB_ENABLED_CHANGE : String = "tabEnabledChange"
[静态] Event.TAB_ENABLED_CHANGE 常量定义 tabEnabledChange 事件对象的 type 属性值。
Event
 InheritedTAB_INDEX_CHANGE : String = "tabIndexChange"
[静态] Event.TAB_INDEX_CHANGE 常量定义 tabIndexChange 事件对象的 type 属性值。
Event
 InheritedUNLOAD : String = "unload"
[静态] Event.UNLOAD 常量定义 unload 事件对象的 type 属性值。
Event
 InheritedAIR-only USER_IDLE : String = "userIdle"
[静态] Event.USER_IDLE 常量定义 userIdle 事件对象的 type 属性值。
Event
 InheritedAIR-only USER_PRESENT : String = "userPresent"
[静态] Event.USER_PRESENT 常量定义 userPresent 事件对象的 type 属性值。
Event
属性详细信息
contextMenuOwner属性
contextMenuOwner:InteractiveObject  [读写]

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

菜单附加到的显示列表对象。此对象可以是鼠标目标 (mouseTarget) 或显示列表中它的始祖之一。



实现
    public function get contextMenuOwner():InteractiveObject
    public function set contextMenuOwner(value:InteractiveObject):void
isMouseTargetInaccessible属性 
isMouseTargetInaccessible:Boolean  [读写]

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 10

指示 mouseTarget 属性是否因某些安全原因设置为 null。如果 menuTarget 的标称值是对其它沙箱中 DisplayObject 的引用,则 menuTarget 将设置为 null,除非同时具有跨此沙箱边界的双向权限。权限通过以下方式建立:从 SWF 文件调用 Security.allowDomain();或者通过从图像文件的服务器提供策略文件,并在加载图像时设置 LoaderContext.checkPolicyFile 标志。



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

另请参见

mouseTarget属性 
mouseTarget:InteractiveObject  [读写]

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

用户右键单击以显示上下文菜单的显示列表对象。此对象可以是菜单附加到的显示列表对象 (contextMenuOwner) 或显示列表中它的后代之一。

在以下两种情况下,此属性的值可以为 null:不存在任何鼠标目标(例如,当您在后台将鼠标置于某个对象上方时);存在鼠标目标,但它位于您无法访问的安全沙箱中。使用 isMouseTargetInaccessible() 属性可确定上述哪一个原因适用。



实现
    public function get mouseTarget():InteractiveObject
    public function set mouseTarget(value:InteractiveObject):void

另请参见

构造函数详细信息
ContextMenuEvent()构造函数
public function ContextMenuEvent(type:String, bubbles:Boolean = false, cancelable:Boolean = false, mouseTarget:InteractiveObject = null, contextMenuOwner:InteractiveObject = null)

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

创建一个 Event 对象,其中包含有关菜单事件的特定信息。将 Event 对象作为参数传递给事件侦听器。

参数
type:String — 事件的类型。可能的值包括:
  • ContextMenuEvent.MENU_ITEM_SELECT
  • ContextMenuEvent.MENU_SELECT
 
bubbles:Boolean (default = false) — 确定 Event 对象是否参与事件流的冒泡阶段。事件侦听器可以通过继承的 bubbles 属性访问此信息。
 
cancelable:Boolean (default = false) — 确定是否可以取消 Event 对象。事件侦听器可以通过继承的 cancelable 属性访问此信息。
 
mouseTarget:InteractiveObject (default = null) — 用户右键单击以显示上下文菜单的显示列表对象。此对象可以是 contextMenuOwner 或显示列表中它的后代之一。
 
contextMenuOwner:InteractiveObject (default = null) — 菜单附加到的显示列表对象。此对象可以是 mouseTarget 或显示列表中它的始祖之一。

另请参见

方法详细信息
clone()方法
override public function clone():Event

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

创建 ContextMenuEvent 对象的副本,并设置每个属性的值以匹配原始属性值。

返回
Event — 其属性值与原始属性值匹配的新 ContextMenuEvent 对象。
toString()方法 
override public function toString():String

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

返回一个字符串,其中包含 ContextMenuEvent 对象的所有属性。字符串的格式如下:

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

返回
String — 一个字符串,其中包含 ContextMenuEvent 对象的所有属性。
常量详细信息
MENU_ITEM_SELECT常量
public static const MENU_ITEM_SELECT:String = "menuItemSelect"

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

定义 menuItemSelect 事件对象的 type 属性值。

此事件具有以下属性:

属性
bubbles false
cancelable false;没有要取消的默认行为。
contextMenuOwner 菜单附加到的显示列表对象。
currentTarget 当前正在使用某个事件侦听器处理 Event 对象的对象。
mouseTarget 用户右键单击以显示上下文菜单的显示列表对象。
target 已选定的 ContextMenuItem 对象。target 不一定是显示列表中注册此事件侦听器的对象。请使用 currentTarget 属性来访问显示列表中当前正在处理此事件的对象。

另请参见

MENU_SELECT常量 
public static const MENU_SELECT:String = "menuSelect"

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

定义 menuSelect 事件对象的 type 属性值。

此事件具有以下属性:

属性
bubbles false
cancelable false;没有要取消的默认行为。
contextMenuOwner 菜单附加到的显示列表对象。
currentTarget 当前正在使用某个事件侦听器处理 Event 对象的对象。
mouseTarget 用户右键单击以显示上下文菜单的显示列表对象。
target 将要显示的 ContextMenu 对象。target 不一定是显示列表中注册此事件侦听器的对象。请使用 currentTarget 属性来访问显示列表中当前正在处理此事件的对象。

另请参见

示例 如何使用示例
ContextMenuEventExample.as

以下示例使用 ContextMenuEventExample 类从舞台中删除默认的上下文菜单项,并添加能够更改舞台上正方形颜色的新菜单项。该示例执行下列任务:
  1. 声明 myContextMenu 属性,然后将其分配给新的 ContextMenu 对象并声明 redRectangle 属性(属于 Sprite 类型)。
  2. 调用 removeDefaultItems() 方法。此方法删除除“打印”之外的所有内置上下文菜单项。
  3. 调用 addCustomMenuItems() 方法。此方法将 Reverse Colors 菜单项放入 defaultItems 数组中(使用 Array 的 push() 方法)。将 menuItemSelect 事件侦听器添加到 ContextMenuItem 对象中,关联的方法名为 menuItemSelectHandler()。当用户从上下文菜单中选择“反转颜色”时,此方法将输出一些 trace() 语句。此外,红色正方形将变为黑色,黑色文本将变为红色。
  4. 回到构造函数中,添加一个 menuSelect 事件侦听器以及关联的方法 menuSelectHandler(),每次选择上下文菜单中的一项时,只输出三条 trace() 语句。
  5. 构造函数调用 addChildren(),绘制一个红色正方形并将其添加到显示列表中(将立即显示该正方形)。
  6. 最后,将 myContextMenu 分配给 redRectangle 属性的上下文菜单,以便仅当鼠标指针位于正方形上方时才显示自定义上下文菜单。
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;
        }
    }
}