快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

Flash+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() {
 f

or (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;
}

点击这里下载源文件




返回类别: Flash教程
上一教程: Flash制作折叠的三角形
下一教程: Flash Player 7 安全策略解析

您可以阅读与"Flash+XML写了个类似韩国菜单的效果"相关的教程:
· FLASH右键菜单的应用
· Flash使用技巧--用Flash 5巧做“弹出”效果菜单
· Flash制作一款简朴的滑动菜单
· 用FLASH AS实现鼠标画圆的效果
· Flash制作一款朴素又不乏时尚效果的菜单
    微笑服务 优质保证 索取样品