二级导航菜单(flash+xml)

【功能说明】
使用flash的显示功能和XML的灵活配置功能做了一个二级导航菜单;
可以进行收缩显示;
//=======menu.xml内容=========

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<root>
        <menu label="关于我们|About US">
                <item label="公司简介" target="_seft" goto=""/>
                <item label="企业文化" target="_seft" goto=""/>
                <item label="公司员工" target="_seft" goto=""/>
    </menu>
        <menu label="新闻中心|News">
                <item label="行业新闻" target="_seft" goto=""/>
                <item label="公司新闻" target="_seft" goto=""/>
    </menu>
        <menu label="产品发布|Product">
                <item label="产品分类1" target="_seft" goto=""/>
                <item label="产品分类2" target="_seft" goto=""/>
                <item label="产品分类3" target="_seft" goto=""/>
                <item label="产品分类4" target="_seft" goto=""/>
                <item label="产品分类5" target="_seft" goto=""/>
        </menu>
        <menu label="联系我|Email" target="_seft" goto="mailto:qiankinglong@hotmail.com"/>
        <menu label="友情联接|Link">
                <item label="Klstudio" target="_seft" goto="http://www.klstudio.com"/>
                <item label="Sohu" target="_seft" goto="http://www.sohu.com"/>
                <item label="网易" target="_seft" goto="http://www.163.com"/>
        </menu>
</root>


【功能截图】
图片显示1


图片显示2


图片显示3



【功能显示】
http://www.klstudio.com/all_image/resource/menu.html
【文件下载】
tree.rar打包下载
该篇文章来源:Flash动漫教学网 (http://www.ccflash.com),转摘麻烦说明下.

FLA  
Trackback

本文到目前为止有11条评论

  1. Gravatar Icon
    用樓主的xml文件我也試著搞了一個二級菜單,
    [f w=150 h=320]http://www.freewebs.com/seekyes/swf/xmlMenu.swf[/f]

    回复

  1. Gravatar Icon
    怎么看不到?免費空間是不好,用鏈接看看
    http://www.freewebs.com/seekyes/swf/xmlMenu.swf

    回复

  1. Gravatar Icon
    只有一個mc就行了,建一個標簽名為menuList的mc,這個mc里面只有一個實體名為menutext的動態文本,將這個mc做個linkage以便在代碼中使用attachMovie載入,回到場景,在第一幀中加入下面的代碼就制作完成了.xml文件使用樓主的.

    var xx = 60;//菜單的x坐標
    var yy = 5;//菜單的y坐標
    xmlMenu = new XML();
    xmlMenu.ignoreWhite = true;
    xmlMenu.load("menu.xml");
    var index = 0;
    xmlMenu.onLoad = function(success) {
            if (success) {
                    loadOK();
            } else {
                    trace("加載失敗");
            }
    };
    function loadOK() {
            var firstLevel = xmlMenu.firstChild.childNodes;
            var total = firstLevel.length;
            for (var i = 1; i<=total; i++) {
                    attachMovie("menuList", "menuList"+i, 100+i);
                    var firstMenu = this["menuList"+i];
                    firstMenu.menutext.autoSize = true;
                    firstMenu.menutext.text = firstLevel[i-1].attributes["label"];
                    firstMenu.seLevel = xmlMenu.firstChild.childNodes[i-1].childNodes;
                    firstMenu.total2 = firstMenu.seLevel.length;
                    firstMenu.showtrue = 1;
                    if (firstMenu.total2<=0) {//如果沒有第二級就直接給鏈接
                            firstMenu.urlstr = firstLevel[i-1].attributes["goto"]
                            firstMenu.urltarget = firstLevel[i-1].attributes["target"]
                            firstMenu.onRelease = function() {
                                    getURL(this.urlstr,urltarget);
                            };
                    }
                    firstMenu.onMouseDown = function() {
                            if (this.hitTest(_root._xmouse, (_root._ymouse+this._height-this.menutext._height), false)) {
                                    if (this.showtrue == 1 || !this.hitTest(_root._xmouse, (_root._ymouse+this._height-this.menutext._height), false)) {
                                            if (this.total2>0) {
                                                    j = 1;
                                                    this.onEnterFrame = function() {
                                                            //為了有個展開過程就不用for了
                                                            aa = this.attachMovie("menuList", "menuList"+j, 10+j);
                                                            aa.menutext.autoSize = true;
                                                            aa.menutext.textColor = "0xaa00aa";
                                                            aa.menutext.text = this.seLevel[j-1].attributes["label"];
                                                            aa.urlstr = this.seLevel[j-1].attributes["goto"];
                                                            aa.urltarget = this.seLevel[j-1].attributes["target"];
                                                            aa.onRelease = function() {
                                                                    getURL(this.urlstr, this.urltarget);
                                                            };
                                                            aa._y = aa._height*j;
                                                            if (j<this.total2) {
                                                                    j++;
                                                            } else {
                                                                    this.onEnterFrame = null;
                                                            }
                                                    };
                                            }
                                            this.showtrue = 0;
                                    } else if (this.showtrue == 0 && this.hitTest(_root._xmouse, (_root._ymouse+this._height-this.menutext._height), false)&& !this.hitTest(_root._xmouse, (_root._ymouse+this._height), false)) {
                                            for (var j = 1; j<=this.total2; j++) {
                                                    bb = this["menuList"+j];
                                                    bb.removeMovieClip();
                                            }
                                            this.showtrue = 1;
                                    }
                            }
                    };
            }
    }
    onEnterFrame = function () {//不停檢測第一級菜單坐標
            if (xmlMenu.firstChild.childNodes.length != undefined) {
                    for (var i = 1; i<=xmlMenu.firstChild.childNodes.length; i++) {
                            var firstMenu = this["menuList"+i];
                            firstMenu._x = xx;
                            if (i<=1) {
                                    firstMenu._y = yy;
                            } else {
                                    upMenu = this["menuList"+(i-1)];
                                    firstMenu._y = upMenu._y+upMenu._height;
                            }
                    }
            }
    };

    回复

  1. Gravatar Icon
    jimbob在上个帖子中说


    现提供源代码
    menu.rar

    回复

  1. Gravatar Icon
    伟仔在上个帖子中说


    效果还可以呀!

    回复

  1. Gravatar Icon
    kinglong在上个帖子中说
      

    现提供源代码
    menu.rar


    晕....    俺是对看了你的代码,还在要源码的人说的,  俺不大赞同提供源代码下载,那样培养惰性 :(

    回复

  1. Gravatar Icon
    365days在上个帖子中说



    function moveMenu(menu_id) {
            delete old_obj;
            for (i=0; i<menu_xml_count; i++) {
                    var move_obj = eval("menu"+i+"_mc");
                                    //把这段代码改成这样就可以实现你的要求!
                                    //不过我觉得你的要求不太合理!
                    move_obj.open_item();
                    if (old_obj == undefined) {
                            move_obj._y = menu_y;
                    } else {
                            move_obj._y = old_obj._y+old_obj._height;
                    }
                    old_obj = move_obj;
            }
            fscommand("setHeight", move_obj._y+move_obj._height);
    }

    回复

  1. Gravatar Icon
    哈,楼主误解我的意思了
    我说的是这种效果:
    点击那一级菜单那一个菜单就展开
    他不影响其他的菜单
    就想黑色闪客里的FLASH+ASP+XML一样!!
    哈哈!

    回复

  1. Gravatar Icon
    提醒:最后回贴距现在 791 天,请不要无意义回复

    提供的下载地址都是无法找到。怎么弄的啊。请更新链接

    回复

  1. Gravatar Icon
    正需要这个效果,怎么做的呢?
    看完上面前几楼说的,我还是没有把效果做出来,求哪位大哥指点一下

    回复

  1. Gravatar Icon

    冒似你看到了这种效果?这个二级菜单是纵向的还是横向的呢?

    回复

添加评论