新的 ActionScript 开发人员经常混淆了Timer
类的目的和TimerEvent
. 它实际上是为了在特定时间触发动作,而不是为了测量时间。
要测量时间,请使用getTimer
函数。无论何时调用它,它都会返回自 Flash 播放器启动以来经过的毫秒数。要测量经过的时间,您只需调用getTimer()
两次,然后从第二个测量值中减去第一个测量值。
有很多方法可以组织您的特定情况。一种是将敌人的生成时间戳存储在敌人类上,并在构造函数中捕获它:
public class Enemy extends MovieClip {
public function get spawnTime():int { return _spawnTime; }
private var _spawnTime:int;
// Constructor
public function Enemy() {
super();
_spawnTime = getTimer();
}
}
然后当敌人被杀死时,你getTimer()
再次调用以获得反应时间:
// Somewhere, where you are processing the enemy killed event
var killTime:int = getTimer();
var reactionTime:int = killTime - killedEnemy.spawnTime; // in whole ms
var reactionSeconds:Number = reactionTime / 1000; // in seconds