为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

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;

应该是没问题的,不知道你实力什么的怎么定的,所以只是在你的程序上修改的


查看完整回答
反对 回复 2022-08-08
  • 1 回答
  • 0 关注
  • 138 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信