處理選單事件

Flash Player 9 以及更新的版本,Adobe AIR 1.0 以及更新的版本

當使用者選取選單或選單項目時,選單便會傳送事件。

選單類別的事件摘要

您可以將事件偵聽程式加入至選單或個別項目,以處理選單事件。

物件

傳送的事件

NativeMenu (AIR)

Event.PREPARING (Adobe AIR 2.6 及更新的版本)

Event.DISPLAYING

Event.SELECT (從子項目和子選單傳遞)

NativeMenuItem (AIR)

Event.PREPARING (Adobe AIR 2.6 及更新的版本)

Event.SELECT

Event.DISPLAYING (從上層選單傳遞)

ContextMenu

ContextMenuEvent.MENU_SELECT

ContextMenuItem

ContextMenuEvent.MENU_ITEM_SELECT

Event.SELECT (AIR)

選取選單事件

若要處理按一下選單項目的動作,請將 select 事件的事件偵聽程式加入至 NativeMenuItem 物件:

var menuCommandX:NativeMenuItem = new NativeMenuItem("Command X"); 
menuCommandX.addEventListener(Event.SELECT, doCommandX)

由於 select 事件都會反昇至項目所屬的選單,因此您也可以對上層選單偵聽 select 事件。在選單層級進行偵聽時,您可以使用事件物件的 target 屬性,判斷所選取的選單命令。下列範例會追蹤所選取命令的標籤:

var colorMenuItem:NativeMenuItem = new NativeMenuItem("Choose a color"); 
var colorMenu:NativeMenu = new NativeMenu(); 
colorMenuItem.submenu = colorMenu; 
 
var red:NativeMenuItem = new NativeMenuItem("Red"); 
var green:NativeMenuItem = new NativeMenuItem("Green"); 
var blue:NativeMenuItem = new NativeMenuItem("Blue"); 
colorMenu.addItem(red); 
colorMenu.addItem(green); 
colorMenu.addItem(blue); 
 
if(NativeApplication.supportsMenu){ 
    NativeApplication.nativeApplication.menu.addItem(colorMenuItem); 
    NativeApplication.nativeApplication.menu.addEventListener(Event.SELECT, colorChoice); 
} else if (NativeWindow.supportsMenu){ 
    var windowMenu:NativeMenu = new NativeMenu(); 
    this.stage.nativeWindow.menu = windowMenu; 
    windowMenu.addItem(colorMenuItem); 
    windowMenu.addEventListener(Event.SELECT, colorChoice); 
} 
 
function colorChoice(event:Event):void { 
    var menuItem:NativeMenuItem = event.target as NativeMenuItem; 
    trace(menuItem.label + " has been selected"); 
} 

如果您使用 ContextMenuItem 類別,便可以偵聽 selectmenuItemSelect 事件。menuItemSelect 事件可提供您關於擁有快顯選單之物件的額外資訊,但是不會反昇至項目所屬的選單。

displaying 選單事件

若要處理開啟選單的動作,您可以加入 displaying 事件的偵聽程式,這個事件會在選單顯示之前傳送。您可以使用 displaying 事件更新選單 (例如,透過加入或移除項目,或透過更新個別項目的 enabled 或 checked 狀態)。您亦可從 ContextMenu 物件偵聽 menuSelect 事件。

在 AIR 2.6 及更新的版本中,您可以使用 preparing 事件來更新選單,以回應顯示選單或使用鍵盤快速鍵選取項目。