Waver's blog

心境如秋

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
最近要做个可以动态修改的菜单,本来想直接用flash来读数据库数据的,但新学了点xml语言,试着用flash来解析xml文件来获取数据,辛苦了半天,终于把我想要的数据给弄到了数组里面,现在把这个部分写下来,大家看看:
       首先建立的是xml数据文件,因我要做的是一个菜单,所以我就写了个菜单的XML,内容如下:
<?xml version="1.0" encoding="utf-8"?>
<fild>
 <menu id="1" menutext="首页" menuurl="index.asp">
  <submenu submenutext="首页" submenuurl="index.asp"/>
 </menu>
 <menu id="2" menutext="火热促销" menuurl="huolairema">
  <submenu submenutext="特别推介" submenuurl="aaaa"/>
  <submenu submenutext="促销商品" submenuurl="aaaa"/>
 </menu>
 <menu id="3" menutext="所有商品" menuurl="aaaa">
  <submenu submenutext="野营/旅行" submenuurl="aaaa"/>
  <submenu submenutext="鞋袜类" submenuurl="aaaa"/>
  <submenu submenutext="户外服装" submenuurl="aaaa"/>
  <submenu submenutext="水上运动" submenuurl="aaaa"/>
  <submenu submenutext="工具/仪器/眼镜" submenuurl="aaaa"/>
  <submenu submenutext="登山攀岩" submenuurl="aaaa"/>
  <submenu submenutext="户外书籍" submenuurl="aaaa"/>
 </menu>
 <menu id="4" menutext="评测中心" menuurl="aaaa">
  <submenu submenutext="评测中心" submenuurl="sd"/>
 </menu>
 <menu id="5" menutext="新品速递" menuurl="aaaa">
  <submenu submenutext="新品速递" submenuurl="fhjg"/>
 </menu>
 <menu id="6" menutext="选购指南" menuurl="aaaa">
  <submenu submenutext="选购指南" submenuurl="ryry"/>
 </menu>
 <menu id="7" menutext="二手交易" menuurl="aaaa">
  <submenu submenutext="二手交易" submenuurl="dgdh"/>
 </menu>
 <menu id="8" menutext="户外论坛" menuurl="aaaa">
  <submenu submenutext="户外论坛" submenuurl="dfhdfh"/>
 </menu>
</fild>
       这个XML文件我自认为还是比较合理的,分级也是按照我的需要,且好简单,要写入数据也容易(只可惜我不会,如没有别人合做,我只能改这个文件来改我的菜单了,呵呵)
      下面是在flash里的代码。我写的是一个as文件,我认为这样做好看点,一版一版地看,呵呵,这可是个好习惯呢。
     menu.as:
mymenu = new XML();
mymenu.load("menu.xml");
mymenu.ignoreWhite = true;
mymenu.onLoad = findThefild;
var passItOn = "";
menu_text = "";
var menu_array = new Array();
var submenu_array = new Array();
var menuurl_array = new Array();
var submenuurl_array = new Array();
var i:Number = 0;
// -----------------------------------------------------------
function findThefild() {
 //trace(mymenu);
 for (var counter01 = 0; counter01<=mymenu.childNodes.length; counter01++) {
  if (this.childNodes[counter01].nodeName.toLowerCase() == "fild") {
   passItOn = this.childNodes[counter01];
   //trace(passItOn.firstChild.attributes.id)
   findTheMenu(passItOn);
   //遍历主菜单
  }
 }
}
function findTheMenu(menulevel) {
 for (var counter02 = 0; counter02<=menulevel.childNodes.length; counter02++) {
  //trace(menulevel.childNodes[counter02].nodeName)
  if (menulevel.childNodes[counter02].nodeName.toLowerCase() == "menu") {
   passItOn = menulevel.childNodes[counter02];
   //trace(passItOn.attributes.menutext)
   menu_text = passItOn.attributes.menutext;
   menu_array[counter02] = menu_text;
   //trace("menu_array"+[counter02]+"="+menu_array[counter02]);
   //获得主菜单数组
   menu_url = passItOn.attributes.menuurl;
   menuurl_array[counter02] = menu_url;
   //trace("menuurl_array"+[counter02]+"="+menuurl_array[counter02]);
   //获得主菜单链接地址数组
   //-----------------------------------------------------创建菜单影片剪辑
   Creatmenu(menu_array[counter02], menuurl_array[counter02]);
   //遍历子菜单
   findTheSubmenu(passItOn);
   trace("the"+" "+counter02+" "+"trun");
  }
 }
}
function findTheSubmenu(submenulevel) {
 for (var counter03 = 0; counter03<=submenulevel.childNodes.length; counter03++) {
  //trace(menulevel.childNodes[counter03].nodeName)
  if (submenulevel.childNodes[counter03].nodeName.toLowerCase() == "submenu") {
   passItOn = submenulevel.childNodes[counter03];
   trace(passItOn.attributes.submenutext);
   //submenu_text = passItOn.attributes.submenutext;
   submenu_array[counter03] = passItOn.attributes.submenutext;
   submenuurl_array[counter03] = passItOn.attributes.submenuurl;
   trace("submenu_array"+[counter03]+"="+submenu_array[counter03]);
   trace("submenuurl_array"+[counter03]+"="+submenuurl_array[counter03]);
   //获得子菜单数组与链接数组
   //----------------------------------------------------为每个影片加载上子菜单
   CreatsubMenu(submenu_array[counter03], submenuurl_array[counter03]);
  }
 }
}
剩下的工作是flash里的菜单了,到这儿也只是写了处理xml的部分。只有望下次了。
posted on 2008-04-08 11:21  Waver  阅读(583)  评论(0编辑  收藏  举报