flash和xml实现二级菜单效果

P.S. 
    这个二级菜单程序已经很久之前写得了,这几天有一个网友再一次问起来,所以想一想还是把这个程序也贴出来吧,希望对大家有点帮助! 
演示效果: 
[1b]程序核心代码:[/1b] 
//===主场景代码 ===   
stop();   
menu_xml_count = 0;   
menu_y = 30;   
id = 0;   
//读取menu.xml文件;   
menu_xml = new XML();   
menu_xml.ignoreWhite = true;   
menu_xml.onLoad = function(sc) {   
if (sc) {   
_root.init(this.firstChild);   
}   
};   
menu_xml.load("menu.xml");   
function init(nd) {   
menu_xml_count = nd.childNodes.length;   
setMenu(nd.firstChild);   
}   
function setMenu(node) {   
if (node != null) {   
var initObj = new Object();   
initObj._x = 0;   
if (menu_obj != undefined) {   
initObj._y = menu_obj._y+menu_obj._height;   
} else {   
initObj._y = menu_y;   
}   
initObj.id = id;   
initObj.node = node;   
initObj.label = node.attributes.label;   
initObj.target = node.attributes.target;   
initObj.goto = node.attributes.goto;   
menu_obj = _root.attachMovie("menu_mc", "menu"+id+"_mc", id+100, initObj);   
id = id+1;   
setMenu(node.nextSibling);   
} else {   
id = 0;   
fscommand("setHeight", menu_obj._y+menu_obj._height);   
play();   
}   
}   
function moveMenu(menu_id) {   
delete old_obj;   
for (i=0; i0) {   
expand = true;   
}   
//===========;   
//设置target;   
if (this.target == undefined || this.target == "") {   
this.target = "_self";   
本文转自:http://www.5uflash.com/flashjiaocheng/Flashaschengxu/1072.html
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
预览效果:http://www.vbobo.com/teach/krmenu/ 因为这次这个效果是公司的任务,我也是顺便共享出来给大家,希望给新手一些帮助,不过我并没有写出注释,希望需要的人自己能分析下,语法不算复杂! AS代码如下: _______________________________________________________ stop(); System.useCodepage = true; Stage.scaleMode = "noScale"; Stage.showMenu = false; Stage.align = "T"; var mxml:XML = new XML(); mxml.ignoreWhite = true; mxml.load("MenuList.xml"); var pageID:Number = 0; mxml.onLoad = function(success) { if (!success) { trace("XML文件装载失败!"); } else { menuList = mxml.firstChild.childNodes; InitMenu(); } }; function InitMenu() { createEmptyMovieClip("myMenu", -1); myMenu._y = 263; myMenu.onEnterFrame = InitMenuX; MLN = menuList.length; for (i=0; i<MLN; i++) { loads = createEmptyMovieClip("loadx"+i, i); loads.loadMovie(menuList.attributes.swf); loads._xscale = loads._yscale=0; loads._visible = false; menus = myMenu.attachMovie("menu", "menu"+i, i); menus.menu_box._visible = false; menus.menu_box._xscale = 1; menus.MName.text = menuList.attributes.name; menus.id = i; menus.onRollOver = menuOver; menus.onRelease = menuRelease; } myMenu["menu"+pageID].onEnterFrame = menuOver; } function InitCMenu(cmenuMC) { createEmptyMovieClip("CMenu", -2); myMC = cmenuMC; CMenu._y = -50; CMenu.onEnterFrame = InitCMenuX; cmenuList = menuList[cmenuMC.id].childNodes; CLL = cmenuList.length; for (i=0; i<CLL; i++) { cmenus = CMenu.attachMovie("cmenu", "cmenu"+i, i); cmenus.CMenu.text = cmenuList.attributes.name; cmenus.id = i; cmenus.onRelease = function() { getURL(cmenuList[this.id].attributes.url); }; } } function menuOver() { menu_box_fun(this); this.loadICon.loadMovie(menuList[this.id].attributes.swf); this.loadICon._x = 7; this.loadICon._alpha = 0; this.onEnterFrame = function() { if (this.loadICon._height != 0) { this.loadICon._y = (this.menu_box._y+this.menu_box._height)-this.loadICon._height; if(this.loadICon._alpha<100){ this.loadICon._alpha += 4.5; }else{ delete this.onEnterFrame; } } }; my_color = new Color(this.MName); my_color.setRGB(0xffffff); InitCMenu(this); } function menuRelease() { getURL(menuList[this.id].attributes.url); } function menu_box_fun(thisMC) { for (i=0; i<MLN; i++) { menus = myMenu["menu"+i]; if (menus == thisMC) { menus.menu_box._visible = true; menus.menu_box._xscale = 100; } else { menus.loadICon.unloadMovie(); menus.menu_box._visible = false; menus.menu_box._xscale = 1; my_color = new Color(menus.MName); my_color.setRGB(0xF3D686); } } } function InitMenuX() { for (i=0; i<MLN; i++) { menus = myMenu["menu"+i]; mmbv = menus.menu_box._visible; menus.MName._x += mmbv == true ? (60-menus.MName._x)*0.2 : (0-menus.MName._x)*0.2; menux = myMenu["menu"+(i-1)]; menuXW = menux._x+menux._width; menus._x += (menuXW-menus._x)*0.2; } myMenu._x += ((flash_box._width-(myMenu._width+10))-myMenu._x)*0.2; } function InitCMenuX() { for (i=0; i<CLL; i++) { cmenus = CMenu["cmenu"+i]; cmenux = CMenu["cmenu"+(i-1)]; cmenuXW = cmenux._x+cmenux._width; cmenus._x += (cmenuXW-cmenus._x)*0.2; } myX = myMC.MName._x+myMC._x+myMenu._x; CMenu._x = myX+CMenu._width>1000 ? 1000-CMenu._width : myX; CMenu._y = myMenu._y+41; }

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值