加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

在Flex中个性化定制属于你的右键菜单

发布时间:2020-12-15 05:07:47 所属栏目:百科 来源:网络整理
导读:?xml version="1.0" encoding="utf-8"?mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" minWidth="955" minHeight="600" creationComplete="init()" mx:Script import flash.net.navigateToURL; import mx.controls.Alert; internal var blogItem
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" minWidth="955" minHeight="600"
               creationComplete="init()"
               >
    <mx:Script>
            import flash.net.navigateToURL;
            
            import mx.controls.Alert;
            
            internal var blogItem:ContextMenuItem;
            internal var authorItem:ContextMenuItem;
            internal var qqItem:ContextMenuItem;
            internal var mailItem:ContextMenuItem
            
        
            /**
             * 定制自己的右键菜单
             */
            internal function init():void{
                //创建一个右键上下文菜单
                var contextMenu:ContextMenu=new ContextMenu();
                //隐藏指定的 ContextMenu对象中的所有内置菜单项(“设置”除外)。
                contextMenu.hideBuiltInItems();
                //创建上下文菜单选项
                authorItem=new ContextMenuItem("作者:雪山飞鹄");
                //创建上下文菜单选项
                qqItem=new ContextMenuItem("QQ:184675420");
                //创建上下文菜单选项
                mailItem=new ContextMenuItem("Email:sxyx2008@163.com");
                //创建上下文菜单选项
                blogItem=new ContextMenuItem("Blog:http://www.blogjava.net/sxyx2008/");
                
                //将子菜单系添加到子菜单中
                contextMenu.customItems.push(authorItem);
                contextMenu.customItems.push(qqItem);
                contextMenu.customItems.push(mailItem);
                contextMenu.customItems.push(blogItem);
                
                //为每个子菜单项添加监听事件
                blogItem.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT,menuItemHandler);
                authorItem.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT,menuItemHandler);
                qqItem.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT,menuItemHandler);
                mailItem.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT,menuItemHandler);
                
                //为上下文菜单设置监听
                contextMenu.addEventListener(ContextMenuEvent.MENU_SELECT,menuHandler);
                
                //将该上下文菜单赋值给当前应用环境
                this.contextMenu=contextMenu;
            }
            
            //菜单监听处理函数
            internal function menuHandler(evt:ContextMenuEvent):void{
                trace("menu");
            }    
        
        
        
            //子菜单项监听处理函数
            internal function menuItemHandler(evt:ContextMenuEvent):void{
                //获取事件源,斌将其转化为ContextMenuItem
                var item:ContextMenuItem=ContextMenuItem(evt.currentTarget);
                var caption:String=item.caption;
                switch(caption)
                {
                    case blogItem.caption:
                    {
                        //若为blog地址,则请求到该地址
                        navigateToURL(new URLRequest("http://www.blogjava.net/sxyx2008/"),"_blank");
                        break;
                    }
                    default:
                    {
                        Alert.show(caption,"右键菜单项");
                        break;
                    }
                }
            }
            
            
    </mx:Script>
    
    
</mx:Application>

演示
http://blogagic.com/178/customizing-right-click-menu-of-flex-applications

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读