:再议图片循环滚动 - Flash互助课堂 - 中国教程网论坛 互助学习交流平台

来源:百度文库 编辑:九乡新闻网 时间:2024/07/07 12:55:35
论坛里有篇《循环播放图片加鼠标即停》的帖子颇受欢迎。
但作者并未对其细腻讲解,不少人未谙其意,一知半解,做不出效果
故发一贴以释众疑

要让几张图片循环滚动,最简的原理就是把连续图片再复制一份接到尾部,
待第一张图片滚完之后被复制的接着滚动。原理如图所示
下载 (19.01 KB)
原理示意图
2010-6-25 14:20

不管是用AS控制还是利用帧手工制作都可以使用这个原理
当第一组滚出显视区时,第二组正好接替进入了显视区回到我们第一帧的起始状态。
如果用帧控制,只要直接跳回起始的第一帧就行了;
如果是用AS程序控制,我们再把第一组的x轴位置重新设置接到第二组后面也一样可以构成图片循环滚动

本教材重在讲解AS3实例,帧控制实例并不详解,但教材下给出了参考实例与实例源文件,如果想
要鼠标经过即停效果可参考AS3控制实例代码

实例(本例Flash版本为CS3,.语言为AS3):

1.按CTR+F8创建影片剪辑“content”,导入自己喜欢的图片并排列好
2.切换到舞台,在图层1拖入2个刚创建的影片剪辑:“content”,照示意图中水平并排排列
第一个影片剪辑x坐标要为0
3.新建图层2代码层,代码如下
  1. addEventListener(Event.ENTER_FRAME,sliding);
  2. //动画开始后,每一帧都调用此函数sliding()

  3. function sliding(e:Event):void{
  4.         for(var i:int=0;i
  5.                 var mc:MovieClip = getChildAt(i) as MovieClip;
  6.                 //获取舞台中的影片剪辑
  7.                 mc.x-=5;
  8.                 //影片剪辑x坐标减5,即不断左移
  9.                 if(mc.x<=-560)
  10.                 mc.x=560;
  11.                 //如果影片剪辑x坐标小于等于-560(影片剪辑的长度大小),则x坐标变为560
  12.                 mc.addEventListener(MouseEvent.MOUSE_MOVE,stopSliding);
  13.                 //当鼠标经过影片剪辑时调用stopSliding()函数
  14.                 mc.addEventListener(MouseEvent.MOUSE_OUT,startSliding);
  15.                 //当鼠标离开影片剪辑时调用startSliding()函数
  16.         }
  17. }

  18. function stopSliding(e:MouseEvent):void{
  19.         removeEventListener(Event.ENTER_FRAME,sliding);
  20. }
  21. //删除侦听ENTER_FRAME事件,即影片剪辑停止运动

  22. function startSliding(e:MouseEvent):void{
  23.         addEventListener(Event.ENTER_FRAME,sliding);
  24. }
  25. //添加侦听ENTER_FRAME事件,即影片剪辑继续左移
复制代码

slidingPic.rar (21.76 KB)

下载次数:7

2010-6-25 14:20

使用迅雷等工具下载多扣金币,详情点击!

 

 

slidingPic.swf (16.8 KB) -- 在新窗口浏览

下载次数:6

2010-6-25 14:20

使用迅雷等工具下载多扣金币,详情点击!

 

 

slidingPic-as3.rar (22.72 KB)

下载次数:22

2010-6-25 14:20

使用迅雷等工具下载多扣金币,详情点击!

 

 

slidingPic-as3.swf (10.67 KB) -- 在新窗口浏览

下载次数:1

2010-6-25 14:20

使用迅雷等工具下载多扣金币,详情点击!