我做一个简单的下雨效果.主要代码为:

c=1;
function xx() //创建函数 xx
{
duplicateMovieClip("yudi",c,c); // yudi 为一个雨滴影片剪辑
setProperty(c,_x,random(666)); //设置 c 的 x坐标
setProperty(c,_y,random(-108.2)); //设置 c 的 y坐标

updateAfterEvent(); //更新舞台 (这个怎么有跟没有没啥区别呢)
c++; // c 自加
if(c>50) //判断语句
{
clearInterval(interval); //取消回调
}
}
interval=setInterval(xx,200); //周期回调

疑问: 在出现下雨效果以后,我想让雨停下来..就是取消周期回调,于是我在后面要停止的一帧上添加动作: clearInterval(interval); 但是没有用,就算播放完了,回到第一帧了,下雨效果依然还在.咋办呢? 求助~~~~

蓝山帝景
浏览 236回答 1
1回答

子衿沉夜

我在最早学as2的时候,就对这个函数比较搞不定,是用来计时的,而且,我们的程序会使用循环帧,如果一次没有停掉回调,下次再循环的时候,计时就显得全部混乱了,所以我个人更倾向于用enterFrame另外写函数来代替,而且as3也完全取消了这个函数,代替以timer我修改的代码如下:c=1;var timeCount = 0;this.onEnterFrame = function(){timeCount ++;if(timeCount >= 200){timeCount = 0;duplicateMovieClip("yudi",c,c); // yudi 为一个雨滴影片剪辑setProperty(c,_x,random(666)); //设置 c 的 x坐标setProperty(c,_y,random(-108.2)); //设置 c 的 y坐标updateAfterEvent(); //更新舞台 (这个怎么有跟没有没啥区别呢)//注解:这句意思是强制刷新,一般刷新不会出问题的时候,确实是有和没有一样c++; // c 自加if(c>50) //判断语句{delete this.onEnterFrame;}}}//另,如果中途需要跳转帧的地方,记得加这句 delete this.onEnterFrame;应该是没问题的,不知道你实力什么的怎么定的,所以只是在你的程序上修改的
打开App,查看更多内容
随时随地看视频慕课网APP