论坛里有篇《循环播放图片加鼠标即停》的帖子颇受欢迎。 但作者并未对其细腻讲解,不少人未谙其意,一知半解,做不出 效果故发一贴以释众疑 要让几张图片循环滚动,最简的原理就是把连续图片再复制一份接到尾部, 待第一张图片滚完之后被复制的接着滚动。原理如图所示
不管是用AS控制还是利用帧手工 制作都可以使用这个原理 当第一组滚出显视区时,第二组正好接替进入了显视区回到我们第一帧的起始状态。 如果用帧控制,只要直接跳回起始的第一帧就行了; 如果是用AS程序控制,我们再把第一组的x轴位置重新设置接到第二组后面也一样可以 构成图片循环滚动 本教材重在讲解AS3实例,帧控制实例并不详解,但教材下给出了参考实例与实例 源文件,如果想 要鼠标经过即停效果可参考AS3控制实例代码 实例(本例Flash版本为CS3,.语言为AS3): 1.按CTR+F8创建影片剪辑“content”,导入自己喜欢的图片并排列好 2.切换到舞台,在图层1拖入2个刚创建的影片剪辑:“content”,照示意图中水平并排排列 第一个影片剪辑x坐标要为0 3.新建图层2代码层,代码如下
- addEventListener(Event.ENTER_FRAME,sliding);
- //动画开始后,每一帧都调用此函数sliding()
- function sliding(e:Event):void{
- for(var i:int=0;i<numChildren;i++){
- var mc:MovieClip = getChildAt(i) as MovieClip;
- //获取舞台中的影片剪辑
- mc.x-=5;
- //影片剪辑x坐标减5,即不断左移
- if(mc.x<=-560)
- mc.x=560;
- //如果影片剪辑x坐标小于等于-560(影片剪辑的长度大小),则x坐标变为560
- mc.addEventListener(MouseEvent.MOUSE_MOVE,stopSliding);
- //当鼠标经过影片剪辑时调用stopSliding()函数
- mc.addEventListener(MouseEvent.MOUSE_OUT,startSliding);
- //当鼠标离开影片剪辑时调用startSliding()函数
- }
- }
- function stopSliding(e:MouseEvent):void{
- removeEventListener(Event.ENTER_FRAME,sliding);
- }
- //删除侦听ENTER_FRAME事件,即影片剪辑停止运动
- function startSliding(e:MouseEvent):void{
- addEventListener(Event.ENTER_FRAME,sliding);
- }
- //添加侦听ENTER_FRAME事件,即影片剪辑继续左移
复制代码
|