自定义右键菜单(加载xml文件)

通过加载外部xml文件的数据,自定义右键菜单。

xml文件(setup.xml)
<?xml version="1.0" encoding="UTF-8"?>
<shell>
<menu>
<item url="http://www.baidu.com">访问 百度</item>
<item url="http://www.google.com.hk">访问 谷歌</item>
</menu>
</shell>


文档类menuItem.as
package {
import flash.display.Sprite;
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.events.Event;
import flash.xml.*;
import flash.net.navigateToURL
import flash.events.ContextMenuEvent;
import flash.ui.*;

/**
* ...
* 文档类
* @author zkl
* 2010-9-13 16:45
*/
public class menuItem extends Sprite {
private var _xml:XML;

private var _urlLoad:URLLoader;

private var _url:URLRequest;

private var _myMenu:ContextMenu = new ContextMenu;

private var _menu:String;

private var _menus:Array;

public function menuItem():void {
init();
}

private function init():void {

//加载xml文件
_xml = new XML;
_xml.ignoreWhite = true;
_url = new URLRequest("setup.xml");
_urlLoad = new URLLoader(_url);

//加载完成
_urlLoad.addEventListener(Event.COMPLETE, loadComplete)
}

private function loadComplete(e:Event):void {
_urlLoad.removeEventListener(Event.COMPLETE, loadComplete)
_xml = XML(_urlLoad.data)

//隐藏默认菜单
_myMenu.hideBuiltInItems();
//分析xml文件,将菜单放置在_menus数组
_menus = new Array;
for (var s:String in _xml.menu.item){
var obj:Object = new Object;
obj.name = _xml.menu.item[s];
obj.url = _xml.menu.item[s].@url;
_menus.push(obj);
//添加自定义的右键菜单
var customMenu:ContextMenuItem = new ContextMenuItem(obj.name)
customMenu.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, menuHandler);
_myMenu.customItems.push(customMenu);
}
contextMenu = _myMenu;

//释放内存
_xml = null;
_urlLoad = null;

}

private function menuHandler(e:ContextMenuEvent):void {
navigateToURL(new URLRequest(_menus[_myMenu.customItems.indexOf(e.target)].url), "_blank");
}


}

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值