| 首页 | 新闻 | 网页 | 设计 | 色彩 | 原创 | 视觉 | 素材 | 动漫 | 酷站 | 策划 | 文案 | 访谈 | 运营 | 编程 | 数据库 | 服务器 | 下载 | 图库 | 
您的位置: 幽幽天空 > 网页 > 网页制作 > Flash教程 > ActionScript教程 > 文章正文 用户登录
棕色堂皇,打造古
黄色装修材料:打
个人博客5天打造2
郑州一28岁火车司
郑州一28岁火车司
运营商下一步需要
中国互联网还有机
利用mx2004打造像
as+js,打造页面f
用AS来打造“密文

全力打造超级可扩展Menubar           

全力打造超级可扩展Menubar

作者:佚名 来源:闪吧 更新:2007-1-13 20:49:00 错误报告 我要投稿

我们都知道,flashmx2004里的menubar组件是不错,但是似乎用起来不是太方便,因为我们应用了他的内置选项之后,要是我们再想更改,只能是把原文件再发布一遍了,这的确是不够方便,那么导入外置xml对网站制作来说似乎是以给不错的选择,但是看了网上的一些实例之后,总感觉对于功能的实现描述得不够详细,在此,笔者略有心得,在此分享一下。
其实,对于外置的xml来说,在用户选择了相应选项之后,就应实现相应的功能,但总的来说,实现的功能不过如下:1、getURL一个新页面2、载入文字3、载入swf4、特殊功能如进行信息的传递和交互5、信息框6、保留功能(可供今后无极扩展生机!)(先别偷着乐,我们看一下如何实现的吧。
1.先启动flashmx2004(这不是废话么?)
2.拖入一个menubar和一个XMLconnector如图命名
3.如图写一个xml
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<menu>
   <menuitem label="新页面" >
             <menuitem label="MyFS2004" instanceName="http://www.myfs2004.9126.com" groupName="url"/>
                   <menuitem label="MyFSasp" instanceName="http://www.myfsasp.9126.com" groupName="url"/>
          </menuitem>
          <menuitem label="html" >
                   <menuitem label="欢迎" groupName="html" instanceName="1.htm"/>
          </menuitem>
          <menuitem label="swf" >
                <menuitem label="1">
                         <menuitem label="sm"    groupName="loadswf" instanceName="sm.swf" />
                         </menuitem>         
                <menuitem label="2">
                         <menuitem label="rm"    groupName="loadswf" instanceName="rm.swf" />
                         </menuitem>            
          </menuitem>
   <menuitem label="frame" >
             <menuitem label="1" rtype="radio" instanceName="25" groupName="frame"/>
                   <menuitem label="2" type="radio" instanceName="30" groupName="frame"/>
      <menuitem label="3" type="radio" instanceName="35" groupName="frame"/>
          </menuitem>
   <menuitem label="关于" >
             <menuitem label="网站" instanceName="MyFS" groupName="alert"/>
                   <menuitem label="版权" instanceName="copyright(c)watanuo@MyFS" groupName="alert"/>
          </menuitem>         
</menu>




4.导入xml,绑定xmlconnector+menubar

5.如图写监听在第一桢(此处最为重要,因为所有的功能都通过它来实现的,当然您可以尽情的发挥您的想象来写入各种变态的功能,包括保留的功能啊!)action层第一桢的as

// ----- Listener -----
var menuListener = new Object();

// ----- Change listener -----
menuListener.change = function(evt) {
   var menu = evt.menu;
   var menubar = evt.menubar;
   var item = evt.menuItem;
   var group = evt.groupName;
   if (item != undefined) {
      switch (item.attributes.groupName) {
      case "url" :
         getURL(item.attributes.instanceName, _blank);
         break;
      case "html" :
      trace("html")
         _root.gotoAndPlay("loadhtmlframe");
         loadhtml(item.attributes.instanceName)
         break;
      case "loadswf" :
         _root.gotoAndPlay("loadswfframe");
         _root.loadMC.loadMovie(item.attributes.instanceName)
         _root.loadMC._x=3
         _root.loadMC._y=25
         break;
      case "frame" :
         _root.gotoAndPlay(item.attributes.instanceName);
         break;
      case "alert" :
         msg(item.attributes.instanceName);
         break;
      }
   }
}
menu.addEventListener("change",menuListener);

// ----- Installation listener -----
// There is no change event on MenuBar.
// The change listener must be set on the differents menus.
menuListener.focusIn = function(evt) {
   if (this.initChange == undefined) {
      this.initChange = true;
          var menuObj = evt.target;
      var length = menuObj.dataProvider.childNodes.length; // no access function
      for (var i = 0; i < length; i++) {
         menuObj.getMenuAt(i).addEventListener("change",this);
      }
   }
}
menu.addEventListener("focusIn",menuListener);

// ----- -----
menu_con.trigger();
//定义msg()函数
function msg(content) {
   import mx.controls.Alert;
   Alert.show(content, "", Alert.OK);
}
//定义loadhtml函数
function loadhtml(htmlurl) {
   loadVariablesNum(htmlurl, 0);
   var myDoc = new LoadVars();
   myDoc.load(htmurl);
   myDoc.onData = function() {
      ShowData.text = content;
   };
}
stop()



6.每一桢对应相应的功能,记得要写上stop()啊
7ctrl+enter试试!
说明:功能项目的检测是通过groupName来实现的,而对于我们写入某桢的功能可暂不在xml中发布,这样,当你心情不错的时候,只要再xml中添加相应的项即可实现所谓的升级了!(这尤其适合于您为其他的公司制作的作品,其中包括的功能可后给公司提供,这就是所谓的手后富服务了!)开个玩笑,这个功能其实更适用于您以后合谋个程序交换数据作预留接口用。
点击浏览该文件


文章录入:skyuu    责任编辑:skyuu 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    发表评论:
    姓名:  评 分: 1分 2分 3分 4分 5分
     
  • 严禁发表危害国家安全、政治、黄色淫秽等内容的评论。
  • 用户需对自己在使用幽幽天空服务过程中的行为承担法律责任。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表机友个人观点,与本网站立场无关。