没事把站点的导航菜单分离了出来,很早前写的,有些方法显得有些笨,不要见笑啊.希望对大家有点点帮助.
构思
SWF加载外部的XML文件动态产生菜单
SWF文件处理方法:
1,产生左侧菜单(只是单纯的用attachMovie)
2,产生右侧菜单(这个麻烦些),这里重点是多级菜单的产生及什么情况下移除子菜单
?? 由XML分析后创建父节点菜单和子节点菜单,移过父节点菜单时会产生子节点菜单,点击子节点菜单,调用相应的处理方法
?? 但是怎么记录子级菜单呢,我们设置一个父节点的索引数组来记录这个节点的所有子节点菜单索引,并用另两个数组记录当前索引数组和父节点菜单索引数组
?? 便于其他操作(如某菜单失去焦点,则会删除这个菜单项)
3,判定菜单是否超过下边界,并进行相应调整
4,根据菜单名的长度进行自适应
5,菜单的颜色设置(由外部的XML文件设定)
差不多就这么多功能吧
下面是要加载的菜单XML文件:
<mainmenu?childRollBgAlpha="50"?folderRollBgAlpha="60"><menu?bgColor="0x5C7683"?wordsColor="0x000000"?rollcolor="0xffffff"?
rollbgcolor="0xEE3F26"?ptColor="0x000000"?ptRollColor="0xffffff">?
<submenu?n="Internet"?id="1"?/>?<submenu?n="我的电脑"?id="2"?/>?<submenu?n="电子邮件"?id="newMail~auzn_1982@163.com"?/>?<submenu?n="控制面版"?id="3"?/>?<submenu?n="搜索"?id="4"?/>?<submenu?n="帮助与支持"?id="5"?/>?<submenu?n="关于站长"?id="6"?/></menu><menu?bgColor="0x5C7683"?wordsColor="0x000000"?rollcolor="0x000000"?rollbgcolor="0xFFFFFF"?
ptColor="0x000000"?ptRollColor="0xffffff">?<menu?n="我的文档"?bgColor="0x5C7683"?wordsColor="0x000000"?rollcolor="0x000000"?rollbgcolor="0x00FFFF"?ptColor="0x000000"?ptRollColor="0xffffff">
??<submenu?n="我的音乐"?id="7"?/>??<submenu?n="图片收藏"?id="8"?/>??<submenu?n="我的电影"?id="9"?/>?</menu>?<menu?n="连接到"?bgColor="0x5C7683"?wordsColor="0x000000"?rollcolor="0x000000"?rollbgcolor="0xffFFFF"?ptColor="0x000000"?ptRollColor="0xffffff">?
?<submenu?n="Kingnare"?id="newWeb~http://www.kingnare.com"?/>??<submenu?n="Kingnare?Blog"?id="newWeb~http://www.kingnare.com/blog"?/>??
<submenu?n="闪吧"?id="newWeb~http://www.flash8.net"?/>??<submenu?n="闪客帝国"?id="newWeb~http://www.flashempire.com"?/>?</menu>?<menu?n="附件"?bgColor="0x5C7683"?wordsColor="0x000000"?rollcolor="0x000000"?rollbgcolor="0xffFFFF"?ptColor="0x000000"?ptRollColor="0xffffff">?
?<menu?n="娱乐"?bgColor="0x5C7683"?wordsColor="0x000000"?rollcolor="0x000000"?rollbgcolor="0xffFFFF"?ptColor="0x000000"?ptRollColor="0xffffff">?
??<submenu?n="游戏"?id="10"?/>???<submenu?n="录音"?id="11"?/>???<submenu?n="摄像"?id="12"?/>??</menu>??<submenu?n="画图"?id="13"?/>??<submenu?n="写字板"?id="14"?/>??<submenu?n="计算器"?id="15"?/>?</menu>?<submenu?n="杀毒"?id="16"?/>?<menu?n="其他"?bgColor="0x5C7683"?wordsColor="0x000000"?rollcolor="0x000000"?rollbgcolor="0xffFFFF"?ptColor="0x000000"?ptRollColor="0xffffff">?
?<submenu?n="同步"?id="17"?/>??<submenu?n="备份"?id="18"?/>??<menu?n="Menu"?bgColor="0x5C7683"?wordsColor="0x000000"?rollcolor="0x000000"?rollbgcolor="0xffFFFF"
?ptColor="0x000000"?ptRollColor="0xffffff">???<submenu?n="menu1"?id="19"?/>???<submenu?n="menu2"?id="20"?/>??
?<submenu?n="menu3"?id="21"?/>??</menu>??<submenu?n="恢复"?id="22"?/>?</menu>?</menu></mainmenu>?
标记指明当前记录是父级菜单项,bgColor:背景色,wordsColor:文字色,rollcolor:移过时文字色,rollbgcolor:移过时背景色,ptColor:箭头色,ptRollColor:移过时箭头色(未在SWF中处理DEFAULT情况,可以自己填加)
标记指明当前记录是子级菜单项,属性ID是用于调用相应程序的
希望能对大家的学习起到一些作用,呵呵
由于太懒,没有做成类,假如有人能把这个做成个类或者插件后请发给我一份,多谢啦
PS:由于安全沙箱,没法放置和加载xpMenu.xml文件,所以附件中的SWF文件可能看不到效果,请自行下载观看
源程序见附件:
xpmenu.rar