韩国A3动态弹性菜单分步学

2008-04-02 10:40:42来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折


  由于本人没有写过很长的教程的经验,而且还是这种大量抽像的代码性的东东!假如发现什么问题,希望能您客气的指出来:)

  A3菜单有不少翻版或改进,虽然出来了好长一段时间,但依然可谓经典的AS菜单之作!我们以小雨翻版的A3菜单为例!先看一下A3菜单的效果

  http://bbs.flash8.net/bbs/UploadFile/2005-7/200572514323208.swf

  他的难度在于是通过AS来控制每个菜单项的空间位置,且还伴有弹性的效果!假如空间感不强,就算每行代码注释,也很难形成完整的概念,将其理解透!因为分步进行讲解!

  

  下面是通过练习为A3的制作准备知识点,假如您已熟悉,完万能够直接看二楼的帖子!


  

  第一步练习:


  

  动态生成菜单项:


  首先建立一个方块MC,在库文档中点属性,勾选1,4两项,标识符:menu 。如下图所示

  

  然后,在时间轴第一帧写出以下代码:

  
///////////////////////下面这段7个函数(b1()~b7())是保存菜单地址,能够让按钮随时调用

  stop();

  function b1()

  { trace("b1 pressed");

  getURL("http://1.htm");

  }

  function b2()

  { trace("b2 pressed");

  getURL("http://2.htm");

  }

  function b3()

  { trace("b3 pressed");

  getURL("http://3.htm");

  }

  function b4()

  { trace("b4 pressed");

  getURL("http://3.htm");

  }

  function b5()

  { trace("b5 pressed");

  getURL("http://5.htm");

  }

  function b6()

  { trace("b6 pressed");

  getURL("http://6.htm");

  }

  function b7()

  { trace("b7 pressed");

  getURL("http://7.htm");

  }

  ///////////////////////////////下面是确定菜单的位置及菜单名填写

  for (i = 1; i <=7; i )

  {

  _root.attachMovie("menu", "menu" i, i * 10);

  _root["menu" i]._y = 100;

  _root["menu" i]._x = (i - 1) * 70;//菜单项的X轴坐标

  _root["menu" i].label_txt.text= i;//菜单的标签(1~7)

  _root["menu" i].num = i;//菜单中的一个变量

  }

  //////////////////////////////////////////////////而接着下面是为按钮动态地调用上面的函数添加地址

  for (var i = 1;i<=7;i ){

  this["menu" i].onRelease = function(){

  _root["b" this.num]();

  /////////////////////////////////////

  //也可写成下面这样!

  /* s=eval("b" this.num);

  _root.s();*/

  ///////////////////////////////////

  }

  }


  练习的效果:

  

  


  选项的弹性位移:

  主场景中有个名为mc的实例: 则在mc上的代码为:

  
onClipEvent (load) {


  前面mc位置 = 240;

  
this.targetPos=前面位置 min_h;

  this._x=前面位置 min_h;

  this.vx=0;

  var max_h = 120;

  //选项最大位置

  var min_h = 90;

  //选项最小位置

  var slow = 1.2;

  //弹性缓冲值

  var active = false;

  //判断是否为激活

  }

  onClipEvent (enterFrame) {

  if (active) {

  //mc目标位置=前面mc位置 最大位置

  this.targetPos = 前面mc位置 max_h;

  this.vx = (this.vx (this.targetPos-this._x))/slow;

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇: FlashMX2004建自定义类package

下一篇: 眨眼动画制作