Actionscript 3 如何阻止定时事件的发生?
我正在制作一个游戏,用户点击昆虫并试图获得高分。当用户单击一只昆虫时,该昆虫将播放动画并在其所在位置停留2秒钟,代码如下:Actionscript 3 如何阻止定时事件的发生?,actionscript-3,flash,Actionscript 3,Flash,我正在制作一个游戏,用户点击昆虫并试图获得高分。当用户单击一只昆虫时,该昆虫将播放动画并在其所在位置停留2秒钟,代码如下: import flash.events.MouseEvent; import flash.display.MovieClip; import fl.motion.Animator; import flash.events.*; play(); var mysound:squish = new squish(); this.addEventListener(MouseEve
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秒钟。当玩家暂停游戏,使屏幕上没有昆虫时,如何移除计时器?一些提示:
- 永远不要使用超时,它们将产生糟糕的、不可持续的、难以调试的代码。改用定时器。计时器提供了一些不错的小功能,比如:重复时间、暂停、恢复和重置计时器。因此,您可以将计时器超时设置为2000ms,重复一次并设置事件侦听器TimerEvent.TIMER\u COMPLETE以移除昆虫等。您可以在暂停游戏时暂停计时器,并在需要时继续
- 但是,如果确实使用超时,请为其分配uint并使用clearTimeout()方法停止它
- 构造,例如
this.parent.removeChild(this)代码>很难看。相反,调度一个事件作为替代,并让父级管理死bug(从数组、显示列表等中删除)
- 在每个bug实例中存储声音将占用比所需更多的内存。创建一个静态声音库类并从中调用play()方法