当前位置 :主页>知识堂>Flash实例教程>列表

仿苹果的导航菜单flash实例教程

时间:2008-06-17 来源:www.flexs.cn  作者:flexs   点击:
    核心提示:06年学类时,写的菜单效果。模仿苹果机中的菜单效果,鼠标经过图标时,以该图标为中心向两边缩放。

06年学类时,写的菜单效果。模仿苹果机中的菜单效果,鼠标经过图标时,以该图标为中心向两边缩放。
/**
 *MacintoshMenu(仿苹果机菜单)
 *Auther:流浪儿
 *Versoin:MacintoshMenu 1.0
**/
class MacintoshMenu {
 //属性
 private var target:MovieClip;
 private var imageContainer:MovieClip;
 private var imageArr:Array;
 private var total:Number;
 private var spanX:Number = 5;
 private var ypos:Number = Stage.height/2+50;
 //构造函数
 public function MacintoshMenu(target:MovieClip, imageArr:Array, scale:Number) {
  this.target = target;
  this.imageArr = imageArr;
  //
  total = imageArr.length;
  imageContainer = target.createEmptyMovieClip("imageContainer", 1);
  attachMc(scale);
  resetPosition();
 }
 //加载图片
 private function attachMc(scale:Number):Void {
  for (var i:Number = 0; i<total; i++) {
   var menu:MovieClip = imageContainer.attachMovie(imageArr[i], "menu"+i, i);
   mouseControlZoomEffect(menu, scale);
   menu.onRollOver = function() {
    //trace(this._name);
   };
  }
 }
 //鼠标控制缩放比例效果
 private function mouseControlZoomEffect(mc:MovieClip, scale:Number):Void {
  var owner:Object = this;//用一个临时变量指向当前类
  mc.onEnterFrame = function() {
   var mouseX:Number = Math.abs(this._x+this._width/2+owner.imageContainer._x-owner.imageContainer._parent._xmouse);
   //trace(mc._name+">>> "+mouseX);trace("");
   if (owner.imageContainer.hitTest(owner.target._xmouse, owner.target._ymouse)) {
    if (mouseX<scale) {
     var num:Number = 100+scale-mouseX;
     owner.zoomEffect(this, num);
    } else {
     owner.zoomEffect(this, 100);
    }
   } else {
    owner.zoomEffect(this, 100);
   }
   updateAfterEvent();
  };
 }
 //缩放效果
 private function zoomEffect(mc:MovieClip, scale:Number):Void {
  var ratio:Number = .4;
  mc._xscale = mc._yscale += (scale-mc._xscale)*ratio;
 }
 //重新设置各菜单的位置
 private function resetPosition():Void {
  var owner:Object = this;
  target.onEnterFrame = function() {
   for (var i:Number = 0; i<owner.total; i++) {
    var menu:MovieClip = owner.imageContainer["menu"+i];
    menu._x = owner.imageContainer["menu"+(i-1)]._x+owner.imageContainer["menu"+(i-1)]._width+owner.spanX;
    menu._y = owner.ypos-menu._height;
    owner.imageContainer._x = (Stage.width-owner.imageContainer._width)/2;
   }
   updateAfterEvent();
  };
 }
 //转义(位置、间距等)
 public function get _ypos():Number {
  return this.ypos;
 }
 public function set _ypos(values:Number):Void {
  this.ypos = values;
 }
 public function get _spanX():Number {
  return this.spanX;
 }
 public function set _spanX(values:Number):Void {
  this.spanX = values;
 }
 public function get _x():Number {
  return this.target._x;
 }
 public function set _x(values:Number):Void {
  this.target._x = values;
 }
 public function get _y():Number {
  return this.target._y;
 }
 public function set _y(values:Number):Void {
  this.target._y = values;
 }
}

上一篇:FLASH里做新闻信息列表按日期,按标题排序,以及关键字搜索     下一篇:Flash10 转换本地文件为PDF超级简单方法
版权申明:除部分特别声明不要转载,或者授权我站独家播发的文章外,大家可以自由转载我站点的原创文章,但原作者和来自我站的链接必须保留(非我站原创的,按照原来自一节,自行链接)。文章版权归我站和作者共有。
转载要求:转载之图片、文件,链接请不要盗链到本站,且不准打上各自站点的水印,亦不能抹去我站点水印。
特别注意:本站所提供的源文件,电子书,第三软件,如需使用,请与原作者联系,版权归原作者所有,文章若有侵犯作者版权,请与我们联系,我们将立即删除修改。
 评论内容:(最新评论共有 0) 位网友发表了评论不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码: 匿名? 马上注册
 
 
知识堂分类
RIA教程调查
RIA项目包
本站所提供的所有素材版权归原作者所有,本站只供网友参考与交流,未经作者同意请勿用于商业用途 京ICP备05051668号
服务器带宽提供:零刻数据 本站CDN由网觉天下提供技术支持。 下载带宽支持:重庆万网
52RIA.com[我爱RIA网]是中国第一个以RIA开源为主的网站:所涉及的栏目版块有RIA源码,RIA技术,RIA教程RIA酷站RIA论坛RIA第3方软件RIA电子书