基本思路
① 在 MC 的中心点的左右两侧,同时摆放相同的一组图片,中心点也是首尾相接处
② 测得鼠标和场景水平中心点的距离 ,判断 MC 向左或右及以怎样速度运动。
③ 当 MC 左端抵场景左端或 MC 右端抵场景右端时,令 MC 回到一定位置,实现持续循环滚动
新知识点Stage.width// 场景的宽度,是随意老师教我的,我找半天都没找到。
Stage.height// 场景的高度,练习要用到。
MovieClip._width//MC 的宽度。
MovieClip._height // MC 的高度。
实例说明
①在 MC 注册点的左右都摆放同一组图片,在 主场景中若 MC 运动到边端时刻,即由中心点替代,播放影片时看图片是一致的,但又不是尽头,会形成循环播放的效果。
② 取得场景和 MC 的宽度,以进行计算比较,用鼠标偏离场景水平中线的距离作 MC 移动的参数,当鼠标正在此线,数值为 0 , MC 静止不动,距离大运动速度则快。
③ 设 2 个条件判断,是在 MC 运动到边端时,重新定位。
编写动作脚本
① 在第 1 帧上输入:
m=Stage.width;// 取得场景的宽度
n=tu._width/2;// 取得 MC 的宽度的 1/2 的值
tu._x = tu._x-(m/2-_xmouse)/10;// 将鼠标与水平中心线的差值的 1/10 加到 MC 的位置上,再赋值到新的 MC 位置。
② 在第 2 帧上输入:
if (tu._x>=n) {//MC 左端抵场景左端时
tu._x = tu._x-n;//MC 重新定位到自身中心点在场景左端
}
if (tu._x<=(m-n)) {//MC 右端抵场景右端时
tu._x = tu._x+n; //MC 重新定位到自身中心点在场景右端
}
要点分析
①图片 MC 的制作,中心点是该元件的注册点,又是图片首尾交接处,依据这点判断元件位置,在重新定位后又可以保证图片的准确衔接。
② tu._x = tu._x-(m/2-_xmouse)/10 ,依鼠标在中心点的左侧或右侧及距离的大小,为 MC 设定运动方向及步长。
小结本讲语句不多,用最简洁的脚本实现所需效果正是我们学习的方向,课后可以在网上搜索一些图片滚动的源文件进行比较分析,从而开拓出自己的编程思路。
课后练习还是老套路:由横向改为纵向,范例效果:
补充实例有更多的时候我们希望有一组图片自动匀速滚动,点击某张图片即进入相应网页,这里用上面脚本作一点改动实现如下的效果:
①将原来两帧上的语句改写到MC上.
onClipEvent (load) {
m = Stage.width;
n = this._width/2;
x = 1;
}
onClipEvent (enterFrame) {
this._x -= x; //要向右移动就改"-="为"+=".
if (this._x>=n) { //向右移动此句起作用
this._x = this._x-n;
}
if (this._x<=(m-n)) { //向左移动此句起作用
this._x = this._x+n;
}
}
②分别在各小图上加隐形按钮写脚本,下例是第一个图的按钮上的命令:
on (rollOver) {
x = 0;
}
on (rollOut) {
x = 1;
}
on (press) {
getURL(“http://www.jb51.net”, "_blank");
}