微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

<?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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐