首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何阻止定时事件发生?

如何阻止定时事件发生?
EN

Stack Overflow用户
提问于 2013-11-29 13:31:27
回答 1查看 59关注 0票数 0

我正在制作一个游戏,用户点击昆虫,并试图获得一个很好的高分。当用户单击一只昆虫时,该昆虫会播放一段动画,并在下面的代码中停留2秒:

代码语言:javascript
复制
import flash.events.MouseEvent;
import flash.display.MovieClip;
import fl.motion.Animator;
import flash.events.*;
play();
var mysound:squish = new squish(); 
this.addEventListener(MouseEvent.CLICK, kill);
this.dead = false;
function kill(e:MouseEvent):void 
{
    this.dead=true;
    mouseChildren=false
    mysound.play();
    gotoAndPlay(21);
    this.removeEventListener(MouseEvent.CLICK, kill);
    flash.utils.setTimeout(removeSelf,2000);

}

function removeSelf():void
{
    this.parent.removeChild(this);
}

当用户暂停游戏时,敌人就会停止,他们就会隐形。唯一的问题是,当用户点击昆虫,并点击暂停按钮,昆虫停留在那里2秒。当玩家暂停游戏时,我如何移除计时器,使屏幕上没有昆虫?

EN

回答 1

Stack Overflow用户

发布于 2013-11-29 13:51:48

以下是一些小贴士:

  • 从不使用超时,它们会产生糟糕的、不可持续的、难以调试的代码。请改用计时器。timer提供了很好的小功能,如:重复时间,暂停,恢复和重置计时器。所以你可以将计时器超时设置为2000ms,重复一次并设置一个事件侦听器TimerEvent.TIMER_COMPLETE来移除昆虫等。你可以在暂停游戏时暂停计时器,并在需要时恢复。
  • 如果你使用超时,给它分配一个uint,并使用一个clearTimeout()方法来停止超时,比如this.parent.removeChild(this); is
  • 。相反,调度一个事件作为替代,让父进程管理死的错误(从数组中移除,显示列表等)。
  • 在每个错误实例中存储声音将占用比所需更多的内存。创建一个静态声音库类并从中调用play()方法。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20278993

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档