menu.XML文件内容
<?xml version="1.0" encoding="gb2312" ?>
<items num="7">
<childItem name="menu 1" href="" />
<childItem name="menu 2" href="" />
<childItem name="menu 3" href="" />
<childItem name="menu 4" href="" />
<childItem name="menu 5" href="" />
<childItem name="menu 6" href="" />
<childItem name="网站" href="http://blog.csdn.net/neok" />
</items>
Flash AS文件 内容
/***************************************************************************/
// 系统右键菜单项目
// 环境:Flash 8 Professional
// 时间:2009-2-18
// 程序:Neok
/***************************************************************************/
// 强制编码格式
System.useCodepage = true;
// 需要在右键菜单中显示的项目数组
var menuItemArray:Array = new Array ();
// 链接存放数组
var urlItemArray:Array = new Array ();
// 右键菜单数 变量
var menuNum:Number = 0;
// 定义一个xml读取器
var myXMLLoad:XML = new XML ();
myXMLLoad.ignoreWhite = true;
myXMLLoad.load ("content/menu.xml");
myXMLLoad.onLoad = function (success:Boolean)
{
if (success)
{
// 获取需要显示的菜单数量
menuNum = Number (this.firstChild.attributes["num"]);
// 从xml文件中读取菜单内容和url地址,分别存入对应数组
for (var i = 0; i < menuNum; i++)
{
menuItemArray.push (this.firstChild.childNodes[i].attributes["name"]);
urlItemArray.push (this.firstChild.childNodes[i].attributes["href"]);
}
// 开始建立右键菜单
buildContextMenu ();
}
else
{
// 当未找到xml文件,使用以下默认值
menuItemArray = new Array ();
urlItemArray = new Array ();
}
};
/// 自定义右键菜单 函数
function buildContextMenu ():Void
{
var myContextMenu:ContextMenu = new ContextMenu ();
// 隐藏系统菜单
myContextMenu.hideBuiltInItems ();
// 定义一个菜单项
var contextMenuItem:ContextMenuItem;
// 获取所有需要显示的右键菜单项目
for (var i = 0; i < menuItemArray.length; i++)
{
contextMenuItem = new ContextMenuItem (menuItemArray[i], menuHandler);
contextMenuItem.separatorBefore = true;
myContextMenu.customItems.push (contextMenuItem);
}
// 关联系统右键菜单
_root.menu = myContextMenu;
// 功能函数
function menuHandler (object:Object, menuItem:ContextMenuItem)
{
for (var i = 0; i < menuItemArray.length; i++)
{
if (menuItem.caption == menuItemArray[i] && urlItemArray[i] != "")
{
getURL (urlItemArray[i]);
}
}
}
}