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



 
 
首 页
上一页
下一页
目 录


  

拾级进阶--2.5图片滚动

  网上浏览,我们会看到形形色色的有图片滚动的菜单、横幅及广告,尽管效果基本相同,但因为编写者的思路各异,所以脚本的繁易差异也很大,这里介绍的是一个脚本非常简单的实例。

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


实例2-5图片滚动

  ( 1 )基本思路
  ① 在 MC 的中心点的左右两侧,同时摆放相同的一组图片,中心点也是首尾相接处
  ② 测得鼠标和场景水平中心点的距离 ,判断 MC 向左或右及以怎样速度运动。
  ③ 当 MC 左端抵场景左端或 MC 右端抵场景右端时,令 MC 回到一定位置,实现持续循环滚动

  ( 2 )新知识点
Stage.width// 场景的宽度,是随意老师教我的,我找半天都没找到。
Stage.height// 场景的高度,练习要用到。
MovieClip._width//MC 的宽度。
MovieClip._height // MC 的高度。

  (3)实例说明
  ①在 MC 注册点的左右都摆放同一组图片,在 主场景中若 MC 运动到边端时刻,即由中心点替代,播放影片时看图片是一致的,但又不是尽头,会形成循环播放的效果。
  ② 取得场景和 MC 的宽度,以进行计算比较,用鼠标偏离场景水平中线的距离作 MC 移动的参数,当鼠标正在此线,数值为 0 , MC 静止不动,距离大运动速度则快。
  ③ 设 2 个条件判断,是在 MC 运动到边端时,重新定位。

  (4)编写动作脚本

  ① 在第 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 重新定位到自身中心点在场景右端
  }

  ( 5 )要点分析
  
①图片 MC 的制作,中心点是该元件的注册点,又是图片首尾交接处,依据这点判断元件位置,在重新定位后又可以保证图片的准确衔接。
   ② tu._x = tu._x-(m/2-_xmouse)/10 ,依鼠标在中心点的左侧或右侧及距离的大小,为 MC 设定运动方向及步长。

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

  ( 7 )课后练习
  还是老套路:由横向改为纵向,范例效果:

 

              

                      练习2-5   

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

 

补充实例

源文件下载

①将原来两帧上的语句改写到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://laoxian.flasher123.com/fas/2/24.htm", "_blank");
}

 

 
首 页
上一页
下一 页
目 录