メニューイベントの処理
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(親メニューから伝達される)
|
|
|
|
|
Select メニューイベント
メニューアイテムがクリックされたときにそれに対処するには、
select
イベントのイベントリスナーを NativeMenuItem オブジェクトに追加します。
var menuCommandX = new NativeMenuItem("Command X");
menuCommand.addEventListener(air.Event.SELECT, doCommandX)
select
イベントは、上位の格納元メニューにバブルするため、親メニューでリッスンすることもできます。メニューレベルでリッスンする場合は、イベントオブジェクトの
target
プロパティを使用して、選択されたメニューコマンドを判断できます。次の例では、選択されたコマンドのラベルをトレースします。
var colorMenuItem = new air.NativeMenuItem("Choose a color");
var colorMenu = new air.NativeMenu();
colorMenuItem.submenu = colorMenu;
var red = new air.NativeMenuItem("Red");
var green = new air.NativeMenuItem("Green");
var blue = new air.NativeMenuItem("Blue");
colorMenu.addItem(red);
colorMenu.addItem(green);
colorMenu.addItem(blue);
if(air.NativeApplication.supportsMenu){
air.NativeApplication.nativeApplication.menu.addItem(colorMenuItem);
air.NativeApplication.nativeApplication.menu.addEventListener(air.Event.SELECT,
colorChoice);
} else if (air.NativeWindow.supportsMenu){
var windowMenu = new air.NativeMenu();
window.nativeWindow.menu = windowMenu;
windowMenu.addItem(colorMenuItem);
windowMenu.addEventListener(air.Event.SELECT, colorChoice);
}
function colorChoice(event) {
var menuItem = event.target;
air.trace(menuItem.label + " has been selected");
}
ContextMenuItem クラスを使用する場合、
select
イベントまたは
menuItemSelect
イベントのいずれかをリッスンできます。
menuItemSelect
イベントでは、コンテキストメニューを所有するオブジェクトに関する追加の情報が提供されます。ただし、このイベントは、上位の格納元メニューにはバブルしません。
Displaying メニューイベント
メニューが開かれたときにそれに対処するには、
displaying
イベントのリスナーを追加します。このイベントは、メニューが表示される前に送出されます。displaying イベントは、メニューを更新する場合に使用できます。例えば、アイテムを追加または削除したり、個々のアイテムについて有効化やチェックの状態を更新できます。また、ContextMenu オブジェクトから
menuSelect
イベントをリッスンすることもできます。
AIR 2.6 以降では、
preparing
イベントを使用して、メニューの表示またはキーボードショートカットによるアイテムの選択に応答して、メニューを更新できます。
|
|
|