欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-04-25 21:38:00
导航条也是菜单的一种,是网页上普遍都用到的一个种便捷的翻阅形式,形式多种多样,我们这里是一个简单的实例... 13-03-13...

  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 实例进阶教程”的一部分。查看全套教程>>>>。