| 套件 | flash.events |
| 類別 | public class ContextMenuEvent |
| 繼承 | ContextMenuEvent Event Object |
| 語言版本: | ActionScript 3.0 |
| 執行階段版本: | AIR 1.0, Flash Player 9 |
-
ContextMenuEvent.MENU_ITEM_SELECT -
ContextMenuEvent.MENU_SELECT
相關 API 元素
公用屬性
| 屬性 | 定義自 | ||
|---|---|---|---|
![]() | bubbles : Boolean [唯讀]
指出事件是否為反昇事件。 | Event | |
![]() | cancelable : Boolean [唯讀]
指出是否可避免與事件相關聯的行為指令。 | Event | |
![]() | constructor : Object
類別物件的參照或是特定物件實體的建構函數。 | Object | |
| contextMenuOwner : InteractiveObject
選單所附加至的顯示清單物件。 | ContextMenuEvent | ||
![]() | currentTarget : Object [唯讀]
正主動使用事件偵聽程式處理 Event 物件的物件。 | Event | |
![]() | eventPhase : uint [唯讀]
事件流程中的目前階段。 | Event | |
| isMouseTargetInaccessible : Boolean
指出 mouseTarget 屬性是否已基於安全性考量設為 null。 | ContextMenuEvent | ||
| mouseTarget : InteractiveObject
使用者在其上按一下右鍵以顯示快顯選單的顯示清單物件。 | ContextMenuEvent | ||
![]() | target : Object [唯讀]
事件目標。 | Event | |
![]() | type : String [唯讀]
事件類型。 | Event | |
公用方法
| 方法 | 定義自 | ||
|---|---|---|---|
ContextMenuEvent(type:String, bubbles:Boolean = false, cancelable:Boolean = false, mouseTarget:InteractiveObject = null, contextMenuOwner:InteractiveObject = null)
建立包含選單事件特定資訊的 Event 物件。 | ContextMenuEvent | ||
[覆寫]
建立 ContextMenuEvent 物件的副本,然後設定每個屬性值以符合原始物件的屬性值。 | ContextMenuEvent | ||
![]() |
公用程式函數,可用來實作自訂 ActionScript 3.0 Event 類別中的 toString() 方法。 | Event | |
![]() |
指出物件是否有已定義的指定屬性。 | Object | |
![]() |
檢查是否已經對事件呼叫 preventDefault() 方法。 | Event | |
![]() |
指出 Object 類別的實體是否位於指定為參數的物件原型鏈中。 | Object | |
![]() |
如果可以取消事件的預設行為指令,則取消該行為指令。 | Event | |
![]() |
指出指定的屬性是否存在,以及是否可列舉。 | Object | |
![]() |
為迴圈作業設定動態屬性的可用性。 | Object | |
![]() |
避免處理事件流程中,目前節點以及任何後續節點中的任何事件偵聽程式。 | Event | |
![]() |
避免處理接續在事件流程中的目前節點之後,後續節點中的任何事件偵聽程式。 | Event | |
![]() |
傳回代表此物件的字串,根據地區特定慣例進行格式化。 | Object | |
[覆寫]
傳回包含 ContextMenuEvent 物件所有屬性的字串。 | ContextMenuEvent | ||
![]() |
會傳回指定之物件的基本值。 | Object | |
公用常數
| 常數 | 定義自 | ||
|---|---|---|---|
| MENU_ITEM_SELECT : String = "menuItemSelect" [靜態]
定義 menuItemSelect 事件物件的 type 屬性值。 | ContextMenuEvent | ||
| MENU_SELECT : String = "menuSelect" [靜態]
定義 menuSelect 事件物件的 type 屬性值。 | ContextMenuEvent | ||
屬性詳細資訊
contextMenuOwner | 屬性 |
contextMenuOwner:InteractiveObject| 語言版本: | ActionScript 3.0 |
| 執行階段版本: | AIR 1.0, Flash Player 9 |
選單所附加至的顯示清單物件。 此物件可能是滑鼠目標 (mouseTarget),或其顯示清單中的任一祖系。
實作
public function get contextMenuOwner():InteractiveObject public function set contextMenuOwner(value:InteractiveObject):voidisMouseTargetInaccessible | 屬性 |
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相關 API 元素
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相關 API 元素
建構函式詳細資料
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 — 事件類型。可能的值包括:
| |
bubbles:Boolean (default = false) — 判斷 Event 物件是否參與事件流程的反昇階段。事件偵聽程式可以透過繼承的 bubbles 屬性來存取此資訊。
| |
cancelable:Boolean (default = false) — 判斷是否可以取消 Event 物件。事件偵聽程式可以透過繼承的 cancelable 屬性來存取此資訊。
| |
mouseTarget:InteractiveObject (default = null) — 使用者在其上按一下右鍵以顯示快顯選單的顯示清單物件。 此物件可能是 contextMenuOwner,或其顯示清單中的任一後代。
| |
contextMenuOwner:InteractiveObject (default = null) — 選單所附加至的顯示清單物件。 此物件可能是 mouseTarget,或其顯示清單中的任一祖系。
|
相關 API 元素
方法詳細資訊
clone | () | 方法 |
toString | () | 方法 |
常數詳細資訊
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 屬性,存取目前正在處理該事件之顯示清單中的物件。 |
相關 API 元素
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 屬性,存取目前正在處理該事件之顯示清單中的物件。 |
相關 API 元素
範例 如何使用本範例
ContextMenuEventExample.as
下列範例會使用
ContextMenuEventExample 類別,從「舞台」移除預設的快顯選單項目,然後新增會改變「舞台」方形顏色的選單項目。 這個範例會執行下列工作:
- 宣告
myContextMenu屬性,然後指定給新的 ContextMenu 物件,以及宣告 Sprite 類型的redRectangle屬性。 - 呼叫
removeDefaultItems()方法。 這個方法會移除「列印」以外的所有內建快顯選單項目。 - 呼叫
addCustomMenuItems()方法。 此方法會使用 Array 的push()方法,在defaultItems陣列中放置一個Reverse Colors功能表項目。menuItemSelect事件偵聽程式會加入至 ContextMenuItem 物件,而相關的方法稱為menuItemSelectHandler()。 此方法會在使用者從快顯選單中選取 Reverse Colors 時,列出某些trace()陳述式。 除了紅色正方形變成黑色以後,黑色文字也會變成紅色。 - 再回到建構函式,其中新增了
menuSelect事件偵聽程式與關聯的方法menuSelectHandler(),該方法會在每次選取快顯選單中的項目時,簡單的列出三個trace()陳述式。 - 建構函式會呼叫
addChildren(),繪製紅色正方形,並將其加入至顯示清單中,然後立即顯示該正方形。 - 最後,將
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;
}
}
}
Tue Jun 12 2018, 03:47 PM Z
隱藏繼承公用屬性
顯示繼承公用屬性