flash對右鍵的按下沒(méi)有對應的響應事件,但是有的時(shí)候需要用到這個(gè)事件.
在以前可以根據Key的偵聽(tīng)事件中Key.isDown(2)來(lái)判斷按下了右鍵.
但是在as3中Key.isDown函數因為安全原因被刪掉了.那么在as3中怎么獲取右鍵的按下事件呢?
as3的Mouse和MouseEvent也沒(méi)有右鍵的事件.同樣在Keyboard和KeyboardEvent中沒(méi)有右鍵相關(guān)的事件.
但是,如果想想ContextMenu,就有辦法了,在flash中,右鍵響應只關(guān)聯(lián)著(zhù)右鍵菜單.所以在ContextMenu里面有右鍵的響應事件ContextMenuEvent.MENU_Select(在as2里面是ContextMenu.onSelect).
as3中文幫助里面對menuSelect的解釋:在用戶(hù)首次生成上下文菜單但尚未顯示上下文菜單內容時(shí)調度。 這將允許您的程序在顯示菜單之前修改上下文菜單項集。 用戶(hù)通過(guò)右鍵單擊指針
設備來(lái)生成上下文菜單。
所以可以用menuSelect來(lái)作為右鍵的響應事件.在這個(gè)事件執行后就會(huì )顯示右鍵菜單.在這之前,可以執行響應函數,修改對應的菜單內容.
使用方法:
as3:
myMenu = new ContextMenu();
myMenu.hideBuiltInItems();//隱藏原有菜單
myMenu.addEventListener(ContextMenuEvent.MENU_Select,menuSelect);
this.contextMenu = myMenu;
function menuSelect(e:ContextMenuEvent)
{
trace(”menuSelect”);
}
as2:
var my_cm:ContextMenu = new ContextMenu();
function menuHandler(obj:Object, menu:ContextMenu) {
trace(’menuSelect’);
}
my_cm.onSelect = menuHandler;
this.menu = my_cm;