Flash AS 实例进阶 导航条实现方法

  源文件下载

  >>>>>点击查看动画效果<<<<<

  实例2-4导航条

  ( 1 )基本思路

  ① 作几个标签,类型为 MC ,上面有文字标识,是嵌套在标签里的 MC ,鼠标滑过时可以改变字的大小。

  ② 作一类型为 MC 的光标,给其加动作,可以“弹性”地向某点靠近,弹性这词,也是网上学的,意思就是移动方式不要一步到位,避免呆板,就是为好看嘛 。

  ③ 当鼠标滑过某一个标签,光标就以颜色和宽度变化的形态逐步向这点靠近。

  ④单击标签都有一个链接地址被打开,转向指定的页面。

  ⑤设定限制,当鼠标移出范围后,光标以初始形态停在最后滑过的标签上。

  ( 2 )新知识点

  ||// 逻辑或,若干条件,有一条够格就是真。

  &&// 逻辑与,要同时满足所有的条件才为真。

  getURL()// 将来自特定 URL 的文档加载到窗口中, URL 是 WWW 页的地址。

  (3)实例说明

  ① 主场景中水平排开外观一致的 MC 类型的标签,嵌套在标签里的文字也是 MC ,这里分别是:首页、二页、三页、四页。

  ② 用外形和标签同样大的 MC作为光标 ,内部有形状补间,第 1 帧要设定 stop 。

  ( 4 )编写动作脚本

  ① 在标签 MC 上输入:  on (rollOver) {// 鼠标滑过

  h = 1;

  i = 1;

  _root.newx = this._x;// 将这 MC 的坐标 X 的值赋与 _root.newx

  }

  on (rollOut) { 鼠标滑出

  h = 0;

  }

  onClipEvent (enterFrame) {// 以帧频频率执行以下动作

  if (h == 1) { 当变量 h 等于 1 ,就是鼠标滑过此 MC 时,执行以下动作

  if (i>0 && i<21) {i 同时满足大于 0 ,小于 21 的条件

  this.z._xscale = 100+i*1.8;// 嵌套在此 MC 里的 “z” 水平比例增加 i*1.8

  this.z._yscale = 100+i*1.8; // 嵌套在此 MC 里的 “z” 垂直比例增加 i*1.8

  _root.mc._xscale = 100-i*10;// 主场景的 “mc” 水平比例减少 i*10

  _root.mc.play();

  i++;

  }

  } else { 当变量 h 不等于 1 ,就是鼠标滑出此 MC 时,执行以下动作

  if (i>1 && i<22) {

  this.z._xscale = 100+i*1.8; // 嵌套在此 MC 里的 “z” 水平比例减少 i*1.8

  this.z._yscale = 100+i*1.8; // 嵌套在此 MC 里的 “z” 垂直比例减少 i*1.8

  i--;

  }

  }

  }

  on (press) {

  getURL("http://bbs.flasher123.com/", "_blank ");// 得到一个地址 并打开新窗口,这里是第一个标签的,其它标签要根椐需要另设。

  }

  ② 在光标 MC 上输入:

  onClipEvent (load) {

  root.newx = this._x;// 设一变量取得此 MC 的横坐标点

  }

  onClipEvent (enterFrame) {

  this._x = this._x+(_root.newx-this._x)/5;// 不断地将变量 newx 与 MC 的横坐标值的差的 1/5 加上 MC 的横坐标值,赋值到新的 MC 的横坐标值,变量 newx 与 MC 的横坐标值的差是在趋于 0 的变化中。

  if (_root._ymouse>75 || _root._ymouse<25 || _root._xmouse<12 || _root._xmouse>534) { // 满足其中的任一条件,就执行后面语句,为的是避免在光标变化过程中鼠标移出后有没展开的状态.

  this._xscale = 100;

  }

  }

  ( 5 )要点分析

  ① this._x = this._x+(_root.newx-this._x)/5 ,一个缓冲移动公式,是不断地将变量 newx 与 MC 的横坐标值的差的 1/5 加上 MC 的横坐标值,赋值到新的 MC 的横坐标值,变量 newx 与 MC 的横坐标值的差是在趋于 0 的变化中,这样就可实现逐步靠近目标的效果。应该彻底理解,还可以用具体的数值代入公式中,那样对分析理解其作用,是比较简便的方法,熟练掌握后还可以增加抖动率 ( 一个由大逐渐变小直至 0 的的一个变量 ) ,看着有哆了哆嗦的效果,会更好看。

  ② if (_root._ymouse>75 || _root._ymouse<25 || _root._xmouse<12 || _root._xmouse>534) ,“逻辑或”条件判断,满足其中的任一条件,就执行后面语句,这里是为的避免在光标变化过程中鼠标移出后有没展开的状态,因为光标在移动过程中有宽度变化。

  ( 6 )小结

  本讲介绍了复合判断条件的使用,和使用连接地址的方法,还应用到了移动公式: this._x = this._x+(_root.newx-this._x)/n;, 都是经常要用得到的,需要熟练掌握。

  ( 7 )课后练习

  将标签排列由横向改为纵向,范例效果:

  >>>>>点击查看动画效果<<<<<

  练习2-4

  这篇教程为“Flash AS 实例进阶教程”的一部分。查看全套教程>>>>。