Flash AS 实例进阶 图片滚动效果

  源文件下载

  >点击查看动画效果< 实例2-5图片滚动

  基本思路

  ① 在 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 设定运动方向及步长。

小结

  本讲语句不多,用最简洁的脚本实现所需效果正是我们学习的方向,课后可以在网上搜索一些图片滚动的源文件进行比较分析,从而开拓出自己的编程思路。

课后练习

  还是老套路:由横向改为纵向,范例效果:

  >点击查看动画效果< 练习2-5   

补充实例

  有更多的时候我们希望有一组图片自动匀速滚动,点击某张图片即进入相应网页,这里用上面脚本作一点改动实现如下的效果:

  >点击查看动画效果< 补充实例

  源文件下载

  ①将原来两帧上的语句改写到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(“https://www.laike.net”, "_blank");
}

  查看全套"Flash AS 实例进阶教程"教程>>>>。