ContextMenu类
ContextMenuBuiltInItems类
//与系统内置菜单相关的类
ContextMenuItem类 //与用户自定义菜单相关的类
一不小心,就会被这几个类搞昏头。
很好很强大,方便学习
ContextMenuItem类 //与用户自定义菜单相关的类
一不小心,就会被这几个类搞昏头。
举一例,学习之:
flashcs3 新建一个元件,随便画个什么图形。
吧元件拖动到舞台上,名称改为mc
然后复制下面的代码到主时间轴第一桢:
吧元件拖动到舞台上,名称改为mc
然后复制下面的代码到主时间轴第一桢:
var cm:ContextMenu=new ContextMenu(); //定义CM对象,赋值给可视元件. //而后的代码中,会对cm的属性进行修改。达到自定义的效果 //那么就会分别对●内置菜单 ●用户菜单 进行修改 mc.contextMenu=cm; //当然你也可以赋值给舞台。如下语句 //contextMenu=cm; /编辑内置菜单 cm.hideBuiltInItems(); /*//也可以用下面方法,选择性隐藏内置菜单 var cmb:ContextMenuBuiltInItems=new ContextMenuBuiltInItems(); cmb.print=false; cmb.quality=false; cmb.zoom=false; cmb.loop=false; cm.builtInItems=cmb; // builtInItems属性是一个ContextMenuBuiltInItems值, // 需要先修改ContextMenuBuiltInItems的值,然后赋值给cm.builtInItems // 属性,才能对内置菜单进行修改。 */ 编辑用户菜单 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, //在下面依次对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 } |