Flash+XML写了个类似韩国菜单的效果

xml|菜单

  预览效果: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[i].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[i].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[i].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;
}
点击这里下载源文件

时间: 2024-10-02 16:42:01

Flash+XML写了个类似韩国菜单的效果的相关文章

ecshop里有点类似联动菜单那样,但是代码我不会写,望大神们帮忙

问题描述 ecshop里有点类似联动菜单那样,但是代码我不会写,望大神们帮忙 下图是我写的代码我想要的效果是,根据选择一个主体后,名称那项就会出现一些对应的下拉数据,有点类似联动菜单那样,但是代码我不会写,望大神们帮忙 解决方案 http://bbs.ecshop.com/thread-90141-1-1.html 解决方案二: http://bbs.csdn.net/topics/340105236

编程-民工甲在Swing是一把刀里面写用xml制作菜单,我没看懂,是用xml写出菜单然后用Java调用?

问题描述 民工甲在Swing是一把刀里面写用xml制作菜单,我没看懂,是用xml写出菜单然后用Java调用? XML配置 每个应用程序都千奇百怪,功能各异.如何用一个同样的界面来组织呢?的确,这个界面并非适合所有人.不过这里的所有菜单.按钮.流程图.图标等,其动作都是可以用一个"动作码"类定义的,所有的动作都会回调一个统一的函数.而我们只要在这个函数处插入监听,就可以拦截具体动作码,执行我们想做的任何事情,例如格式化C盘.往aobama@whitehouse.com邮箱发个垃圾邮件啥的

flash+xml实现图片切换效果

种效果flash+xml实现图片切换效果,大部分采用遮照,遮照其实不是很难.这里有一个难点主要是加载图片,以及解析XML.其他的都比较简单. OK,看看过程吧. 1.将FLASH文件大小设为800*230,这里主要是根据你想让FLASH占多大的广告来决定的.比如你FLASH希望大一点,就可以大一些.相反呢,就可以设小一点.把背景设成黑色,然后把帧频改为60.这里就不多说了,主要是考虑动画的流畅性. 2.创建一个新元件"my_mc",然后设成可以在AS中导入的.即在AS链接处打上勾 1,

Flash+XML的运用前景

xml 从Flash 5开始支持的loadVariables和loadVarias可以将外部文本导如到场景中,这样的话在使用Flash制作网页的时候更新内容非常方便,不用将整个Flash从新更新上传,上面两个命令也支持从动态页面中加载文本,比如ASP中用response.write将文本写出来,或者JSP中用ducument将文本写出来,都可以在Flash中直接被加载.     在用户访问动态页面的时候过程是这样的:Flash对动态页面发出请求,中间程序(ASP.PHP等)从数据库中取出数据,再

flash+xml结合应用实例下载

xml|下载|应用实例 1.flash+xml做的图片浏览器(普通型) 推荐理由:<1>点击小的缩小图,能展示生成大图<2>小图效果中应用著名缓冲公式,给小图一种流畅衔接的感觉特别说明:请读者特别留意本FLASH源文件中,读去外部XML时候写的AS至于为什么,你看了就知道了!特别感谢朋友白乌鸦(网易FLASH负责人)提供......下载地址:picview.rar解压密码:www.flashbank.cn 2.flash+xml做的xml方式载入图片自动轮换显示 推荐理由:<

class-VB怎么做才能把combo装饰成类似菜单条那样的下拉菜单的效果呢?

问题描述 VB怎么做才能把combo装饰成类似菜单条那样的下拉菜单的效果呢? VB怎么做才能把combo装饰成类似菜单条那样的下拉菜单的效果呢?关于combo和菜单的结合怎么实现? 解决方案 这可以用toolbar代替menu,把combo装入菜单条里面.

flash+xml的电子相框的数据处理问题

问题描述 flash+xml的电子相框的数据处理问题 我是使用flash+xml做的一个web的电子相框,因为是通过xml通过显示的图片 我使用应用控制xml的数据,但是程序反应不过来 修改xml和生成xml进行文件覆盖二种方式都已经试过了 如有例子求发chenquan163em@163.com

android 如何在java代码中方便的调用xml写的布局??

问题描述 android 如何在java代码中方便的调用xml写的布局?? 我想在activity刷新的时候重新生成一些xml写的布局,并放在 "求学"那一栏下: 想问一下有没有什么方便的方法??? 解决方案 可控的话 先加载求学哪里 先设visible为gone. 需要的时候设置为visible 解决方案二: 楼上说得对,先把控件实例化然后把visiblity设为gone 然后调用刷新按钮的时候吧实例传过去,再重新设置visiblity 解决方案三: 一种是隐藏然后显示,最好是用动态

JSP ajax jquery等 如何实现类似写日志、留言等模块,效果如图

问题描述 JSP ajax jquery等 如何实现类似写日志.留言等模块,效果如图 问题补充:最好有点实现的源码,谢谢各位 解决方案 引用最好有点实现的源码,谢谢各位jQuery插件Lightweight Rich Text Editor轻量级编辑器(1)包含文件部分<script type="text/javascript" src="jquery.js"></script><script type="text/javas