在我的基本游戏中显示我的计时器时间

时间:2013-12-17 22:38:54

标签: actionscript-3 flash timer

我在动作脚本中做了一个小游戏,我有一个计时器,在游戏玩家开始时开始,在游戏结束时结束。 但我想在文本字段中显示我的计时器在游戏中的价值,如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;

1 个答案:

答案 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
);