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