首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 媒体动画 > flex >

Flex障蔽并自定义鼠标右键菜单(转载)

2012-11-10 
Flex屏蔽并自定义鼠标右键菜单(转载)最近手头有个项目需要屏蔽Flex鼠标右键菜单并自定义新的flex鼠标右键

Flex屏蔽并自定义鼠标右键菜单(转载)

最近手头有个项目需要屏蔽Flex鼠标右键菜单并自定义新的flex鼠标右键菜单。通过ContextMenu hideBuiltInItems,还是达不到我要的效果,那该死的几个选项还是存在,在网上搜刮了很久,发现了Google Code上有一个RightClickManager的项目。通过JavaScript与ActionScript的结合,屏蔽了右键,并调用actionscript注册方法,使用时需要修改Flex生成的html文件,加入 “wmode”, “opaque”,或者直接修改index.template.html.
上代码:

按照自己的需要我稍做了修改,根据不同界面,出现不同的右键菜单。在RightClickManager.as文件中定义的JavaScript里面,我做了如下的修改

onIEMouse: function() {if (event.button ==2||event.button==0) {if(window.event.srcElement.id == RightClick.FlashObjectID &&RightClick.Cache == RightClick.FlashObjectID) {RightClick.call(); }document.getElementById(RightClick.FlashObjectID).parentNode.setCapture();if(window.event.srcElement.id)    RightClick.Cache = window.event.srcElement.id;}}



这样子,就能在FF3,IE6,遨游,chrome2下顺利通过,(PS:我的机上就这些浏览器,其他没测)
RightClickHandles.as是用来统一管理右键菜单的单例类。RightClickMenuData.as是用于存储右键菜单内容的类。RightClickRegister.as 其实是我修改了FlexSprite.as。
使用说明:
在程序入口new 一下RightClickRegister, 'Flex屏蔽并自定义鼠标右键菜单(转载) '); }); }); code_favorites_init(); fix_image_size($$('div.blog_content img'), 700); function quote_comment(id) { new Ajax.Request('/editor/quote', { parameters: {'id':id, 'type':'BlogComment'}, onSuccess:function(response){editor.bbcode_editor.textarea.insertAfterSelection(response.responseText); Element.scrollTo(editor.bbcode_editor.textarea.element);} }); } new WeiboShare({share_buttons: $('share_weibo'), img_scope: $('blog_content')});

热点排行