首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

[转] 在公布一个鼠标右键的公用类

2012-12-26 
[转] 在发布一个鼠标右键的公用类http://bbs.9ria.com/viewthread.php?tid78302&extrapage%3D1%26amp%3B

[转] 在发布一个鼠标右键的公用类
http://bbs.9ria.com/viewthread.php?tid=78302&extra=page%3D1%26amp%3Borderby%3Ddateline%26amp%3Bfilter%3D2592000

/**鼠标右键类 v1.3@author 大陆仔仔@http://daluzai.net@date 2011-04-07*/package daluzai{        import flash.ui.ContextMenu;        import flash.ui.ContextMenuItem;        import flash.events.ContextMenuEvent;        public class QuickMenu {                //创建菜单对象                var quick_obj:ContextMenu=new ContextMenu();                //舞台指针                var get_stage_:Object;                /***                提供外部接口                */                public function call_QuickMenu(get_stage,caption_arr,fun_arr,explode_arr) {                        //全局变量赋值                        get_stage_=get_stage;                        //隐藏FLASH常用的右键                        remove_quick();                        //创建新右键内容                        new_quick(caption_arr,fun_arr,explode_arr);                        //完成外部菜单                        get_stage_.contextMenu =quick_obj;                }                /**                隐藏FLASH常用的右键                */                function remove_quick() {                        quick_obj.hideBuiltInItems();                }                /**                创建新右键内容                caption_arr 文字菜单数组                fun_arr 菜单函数数组                explode_arr 切割菜单                */                function new_quick(caption_arr,fun_arr,explode_arr) {                        //创建一个空数组                        var add_arr:Array=[];                        //是否切割菜单                        var is_explode:Boolean;                        //数组长度                        var caption_arr_length:Number=caption_arr.length;                        //循环遍历菜单内容,操作函数                        for (var i:Number=0; i<caption_arr_length; i++) {                                //切割菜单                                for (var j:Number=0; j<explode_arr.length; j++) {                                        if (explode_arr[j]==i) {                                                                                                is_explode=true;                                                break                                        } else {                                                is_explode=false;                                        }                                                                        }                                                                //创建遍历菜单字幕                                var quickItem_obj:ContextMenuItem=new ContextMenuItem(caption_arr[i],is_explode);                                //创建遍历监听                                quickItem_obj.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT,fun_arr[i]);                                //添加到新菜单                                quick_obj.customItems.push(quickItem_obj);                        }                }        }}


文档类&或者其他实用类也行
package {        import flash.display.Sprite;        import daluzai.QuickMenu;        public class Ga extends Sprite {                var quickuickMenu=new QuickMenu();                var get_stage:Object=this;                public function Ga() {                        var caption_arr:Array=new Array('嘎','嘎2');                        var fun_arr:Array=new Array(duck,da);                        quick.call_QuickMenu(get_stage,caption_arr,fun_arr);                }                function duck(ent) {                        trace('嘎');                }                function da(ent) {                        trace('嘎嘎');                }        }}


补充说明
call_QuickMenu(get_stage,caption_arr,fun_arr)
这个调用接口需要三个参数,分别是舞台指针也就是this,还有就是要显示菜单的文字数组和执行函数数组


更新一次
增加了性功能,可以支持到切割菜单了。
具体方法是
explode_arr,这个参数。
一个数组,添加你要分割菜单的位置就可以了

热点排行