AS3.0高手帮下忙吧!关于TimerEvent

我在影片中加载了一个雪花的影片剪辑,使用了Timer之后,雪花一点点地出来了,可越到后来雪花数目越来越多,动画播放的速度也越来越慢,这是什么原因呀!这是我的代码:vart... 我在影片中加载了一个雪花的影片剪辑,使用了Timer之后,雪花一点点地出来了,可越到后来雪花数目越来越多,动画播放的速度也越来越慢,这是什么原因呀! 这是我的代码:var time:Timer=new Timer(Math.random()*300+500,40);
time.start();
time.addEventListener(TimerEvent.TIMER,jr);
function jr(event:TimerEvent) {
var snow:xh=new xh();
snow.x=Math.random()*710;
snow.y=Math.random()*100;
snow.scaleX=Math.random()*0.6+0.2;
snow.scaleY=Math.random()*0.6+0.2;
snow.scaleX=snow.scaleY;
addChild(snow);
stage.addEventListener(Event.ENTER_FRAME,stopframe);
function stopframe(event:Event) {
if (currentFrame==47) {
time.stop();
}
}
}
使用了 time.stop();后发现雪花并没有停止呀!越到后来内存占用就越大了,就很卡了
展开
 我来答
匿名用户
2013-06-02
展开全部
但你的Event.ENTER_FRAME 这个事件一真在执行。 应该这么样做:
var time:Timer=new Timer(Math.random()*300+500,40);
time.start();
time.addEventListener(TimerEvent.TIMER,jr);
function jr(event:TimerEvent) {
var snow:xh=new xh();
snow.x=Math.random()*710;
snow.y=Math.random()*100;
snow.scaleX=Math.random()*0.6+0.2;
snow.scaleY=Math.random()*0.6+0.2;
snow.scaleX=snow.scaleY;
addChild(snow);
stage.addEventListener(Event.ENTER_FRAME,stopframe);
function stopframe(event:Event) {
if (currentFrame==47) {
time.stop();

//记得jr这个侦听器要移除掉不能time不能被回收
time.removeEventListener(TimerEvent.TIMER,jr);
//你的内存导致的问题,就是ENTER_FRAME事件的侦听器stopfame没有移除掉。
//导致无限次执行这个侦听器
stage.removeEventListener(Event.ENTER_FRAME,stopframe);
}
}
}
Storm代理
2023-05-25 广告
StormProxies是全球大数据IP资源服务商,其住宅代理网络由真实的家庭住宅IP组成,可为企业或个人提供满足各种场景的代理产品。点击免费测试(注册即送1G流量)StormProxies有哪些优势?1、IP+端口提取形式,不限带宽,IP... 点击进入详情页
本回答由Storm代理提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式