分享

AS3 右键菜单学习

 宜宾翠屏区 2018-12-24

与菜单相关的类一共有3个
ContextMenu类
ContextMenuBuiltInItems类  //与系统内置菜单相关的类
ContextMenuItem类            //与用户自定义菜单相关的类
flashcs3 新建一个元件,随便画个什么图形。
吧元件拖动到舞台上,名称改为mc
然后复制我下面的代码到主时间轴第一侦

var cm:ContextMenu=new ContextMenu();

//定义CM对象,赋值给可视元件.

//而后的代码中,会对cm的属性进行修改。达到自定义的效果

//那么就会分别对●内置菜单 ●用户菜单 进行修改 

mc.contextMenu=cm;

//当然你也可以赋值给舞台。如下语句

//contextMenu=cm;

/////////////编辑内置菜单////////////////////////////////////////

cm.hideBuiltInItems();

 

////////////////////////////////////////////////////////////////////

 

////////////编辑用户菜单////////////////////////////////////////

var cm1:ContextMenuItem=new ContextMenuItem("菜单1",false,true,true);

var cm2:ContextMenuItem=new ContextMenuItem("菜单2",false,true,true);

var cm3:ContextMenuItem=new ContextMenuItem("菜单3",false,false,true);

cm.customItems.push(cm1);//标题名字,分割线,可用,可见

cm.customItems.push(cm2);

cm.customItems.push(cm3);

////////////注意自定义菜单是可以在运行中动态修改的。看个人发挥了////////////

 

//////////////////////////侦听事件函数////////////////////////

//注意侦听的对象是ContextMenuItem,还有个MENU_SELECT事件的监听,注意那个是用在ContextMenu   上的

//在下面依次对cm1,cm2,cm3,三个ContextMenuItem对象添加侦听。
cm1.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT,clickMenu);

cm2.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT,clickMenu);

cm3.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT,clickMenu);
function clickMenu(e:ContextMenuEvent) {

 trace(e.bubbles);//false,是否冒泡
 trace(e.cancelable);//false,是否能取消

 trace(e.contextMenuOwner);//[object MovieClip],所属的对象

 trace(e.currentTarget);//[object ContextMenuItem],

 trace(e.mouseTarget);//[object MovieClip],用户右键单击以显示上下文菜单的显示列表对象。

 trace(e.target);//[object ContextMenuItem]

 trace(e.target.caption);//菜单1,可以从这里来判断,后续操作或者应该执行的函数。

 trace(e.currentTarget.caption);//菜单1

}

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多