教程编写:轻舟一叶 老 闲 随 意   启航论坛 脚本技术室  



 
 
首 页
上一页
下一页
目 录


  

拾级进阶--2.4导航条

   导航条也是菜单的一种,是网页上普遍都用到的一个种便捷的翻阅形式,形式多种多样,我们这里是一个简单的实例。


本节问题讨论交流      源文件下载 mx版本    本讲录音下载


实例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   

 

 
首 页
上一页
下一 页
目 录