Starling Framework中的计时器

时间:2012-06-02 22:25:18

标签: actionscript-3 flash flash-builder starling-framework

大家好,我正在开发一款带有椋鸟的游戏,我想设置一个计时器,例如每2秒我想要发生一些事情。 我使用过juggler elapsed prop,但我想知道是否有更有效的方法来做到这一点

谢谢,

物语

2 个答案:

答案 0 :(得分:13)

或者,您可以使用“DelayedCall”类。这很容易错过! ; - )

var delayedCall:DelayedCall = new DelayedCall(method, 2.0);
delayedCall.repeatCount = int.MAX_VALUE;
Starling.juggler.add(delayedCall);

function method():void
{
    trace("ping");
}

答案 1 :(得分:2)

如果这与动画无关,建议使用Timer作为非动画内容。

计时器实现的性能将高于输入帧处理程序的额外时间计算。

如果你正在推进Starling Jugglers,你可以将Juggler的帧率设置为每2秒。

Jugglers也有delayCall,如果你的算子冗余地称为delayCall,你可以每2秒无限循环:

juggler.delayCall(functor, 2.0);

要与Starlings帧/渲染生命周期相关联,您可以测试自上次调用以来的时间。

private var lastCallTime:int

protected function frameHandler():void
{
    var now:int = getTimer();
    var ellapsed:int = now - lastCallTime;
    if(ellapsed >= 2000)
    {
        /* execute implementation */
        lastCallTime = now;
    }
}