flashas3:flash as3利用ContextMenu实现右键响应

  flash对右键按下没有对应响应事件,但是有时候需要用到这个事件.

  在以前可以根据Key侦听事件中Key.isDown(2)来判断按下了右键.

  但是在as3中Key.isDown安全原因被删掉了.那么在as3中如何获取右键按下事件呢?

  as3Mouse和MouseEvent也没有右键事件.同样在Keyboard和KeyboardEvent中没有右键相关事件.

  但是,如果想想ContextMenu,就有办法了,在flash中,右键响应只关联着右键菜单.所以在ContextMenu里面有右键响应事件ContextMenuEvent.MENU_Select(在as2里面是ContextMenu.onSelect).

  as3中文帮助里面对menuSelect解释:在用户首次生成上下文菜单但尚未显示上下文菜单内容时调度 这将允许您在显示菜单的前修改上下文菜单项集 用户通过右键单击指针设备来生成上下文菜单

  所以可以用menuSelect来作为右键响应事件.在这个事件执行后就会显示右键菜单.在这的前,可以执行响应,修改对应菜单内容.

  使用思路方法:

  as3:

myMenu = ContextMenu;
myMenu.hideBuiltInItems;
myMenu.addEventListener(ContextMenuEvent.MENU_Select,menuSelect);
this.contextMenu = myMenu;
function menuSelect(e:ContextMenuEvent)
{
trace(”menuSelect”);
}


  as2:

var my_cm:ContextMenu = ContextMenu;
function menuHandler(obj:Object, menu:ContextMenu) {
trace(’menuSelect’);
}
my_cm.onSelect = menuHandler;
this.menu = my_cm;



Tags:  flashcs4as3 flashas3编程 flashas3教程 flashas3

延伸阅读

最新评论

发表评论