我在动作脚本中做了一个小游戏,我有一个计时器,在游戏玩家开始时开始,在游戏结束时结束。 但我想在文本字段中显示我的计时器在游戏中的价值,如1,2,3,4,5,6等。 我怎样才能获得定时器的优势来获得价值? 我的计时器代码是:
startTime = (new Date().time);
endTime = (new Date().time);
public function testTime():void
{
const 5_min = 5 * 60 * 1000;
const 2_min = 2 * 60 * 1000;
var timeDiff:Number = endTime - startTime;
if (timeDiff < 2_min) {
trace("Good!");
} else {
trace("Bad!");
}
}
在这里(上图)我创建了一个txt字段。现在,我如何在玩游戏时显示计时器值?
var timer_txt:TextField;
pontuacao = new TextField();
timeDiff = 0;
timer_txt = new TextField();
timer_txt.text = String(timeDiff);
stage.addChild(timer_txt);
timer_txt.x = 470;
timer_txt.y = 320;
答案 0 :(得分:0)
好吧,首先,在AS中你不能用数字开始变量名,因此这段代码绝对不能编译(5_min,2_min = WRONG!)。
你有你的startTime,没关系。现在,您必须检查某种事件(Timer,EnterFrame)或interval(setInterval)中的当前时间,并相应地更新endTime值。一旦你拥有它,你只需计算差值并将其除以1000(我假设您不想以毫秒显示)
这样的事情:
import flash.utils.setInterval;
var s:Number = new Date().getTime(); //start time
var e:Number; //end time
var d:Number; //difference
setInterval(function () {
e = new Date().getTime();
var oldDiff:Number = d;
d = int((e - s) / 1000);
if(oldDiff != d) trace(d + " seconds since launch");
},
100
);