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); 但是没有用,就算播放完了,回到第一帧了,下雨效果依然还在.咋办呢? 求助~~~~
1 回答
子衿沉夜
TA贡献1828条经验 获得超3个赞
我在最早学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;
应该是没问题的,不知道你实力什么的怎么定的,所以只是在你的程序上修改的
添加回答
举报
0/150
提交
取消