呵呵!今天以前单位的小boss给我打电话问我关于flex应用程序添加右键菜单的问题。说添加的菜单没有显示。以前我也没有注意过。现在总结一下。我按照分类介绍一下。
1.flex 上下文菜单的原理
flex一共有三种默认的上下文菜单,它们分别是标准菜单,编辑菜单,和错误菜单三种。
flex的标准菜单:当右键单击flex组件上就会显示Flash Player 提供的一些菜单内容。
flex的编辑菜单:当右键单击flex可选择可编辑的组件上时会显示一个特殊的剪切板菜单例如(复制,粘贴,剪切等)。
flex错误菜单:当flash加载swf失败后会显示错误菜单。
标准菜单和编辑菜单是可以被自定义的但是错误菜单是不能有任何改变。所有继承自InteractiveObject的对象都会包含一个contextMenu属性。通常情况下contextMenu == null。这时候在组件上单击右键会显示Flex framework初始化好的contextMenu。
2.flex菜单的结构
flex的菜单按照组别进行了分类,他会根据flash player版本,是否显示源代码,标准菜单,编辑菜单等等进行分类。
1)View Source选项单独分在一组里,你在头信息里面设置了viewSourceURL就会显示。
2)自定义菜单项,这里就是你自定义菜单的位置。
3)flash设置选项菜单,像什么 Print, Zoom, Play, Loop,质量设置等就在这里。
4)调试菜单选项。只有在flash player 是debug的时候显示。
5)flash的菜单。这个菜单是必须要显示的不能被自定义或隐藏。
咱们通常说的contextMenu.hideBuiltInItems();其实隐藏掉的是第三项。也可以隐掉第三项里的某一个如:contextMenu.builtInItems.print=
false
;//隐掉打印菜单。
3.自定义菜单。这个就有很多地方介绍了我这里也是简单的说一下。
创建自定义菜单