套件 | 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):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
相關 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