Actionscript 3 Starling框架中的计时器

Actionscript 3 Starling框架中的计时器,actionscript-3,flash,flash-builder,starling-framework,Actionscript 3,Flash,Flash Builder,Starling Framework,大家好,我正在开发一个与八哥的游戏,我想设置一个计时器,例如每2秒我想发生一些事情。 我用了杂耍道具,但我想知道有没有更有效的方法 谢谢, Khaled如果这与动画无关,建议对非动画内容使用计时器 计时器实现的性能将高于enterframe处理程序上的额外时间计算 如果您正在推进八哥杂耍者,您可以将杂耍者的帧速率设置为每2秒一次 杂耍者还有delayCall,如果你的函子重复调用delayCall,你可以每2秒无限循环一次: juggler.delayCall(functor, 2.0); 为

大家好,我正在开发一个与八哥的游戏,我想设置一个计时器,例如每2秒我想发生一些事情。 我用了杂耍道具,但我想知道有没有更有效的方法

谢谢,


Khaled

如果这与动画无关,建议对非动画内容使用计时器

计时器实现的性能将高于enterframe处理程序上的额外时间计算

如果您正在推进八哥杂耍者,您可以将杂耍者的帧速率设置为每2秒一次

杂耍者还有
delayCall
,如果你的函子重复调用delayCall,你可以每2秒无限循环一次:

juggler.delayCall(functor, 2.0);
为了配合椋鸟的帧/渲染生命周期,您可以测试自上次调用以来的时间

private var lastCallTime:int

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

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


感谢您标记为否定并且不理解我的问题ps:我不想使用计时器,因为我已经有了进入帧事件,这对设备来说太多了,无法处理。作为后续操作,这也帮助了我。但是,API现在不再执行int.MAX_值,而是支持将repeatCount设置为0以使重复不确定。为了兼容性,我添加了一个扩展,该扩展使用Starling.juggler实现计时器功能:为了兼容性,我添加了一个扩展,该扩展使用Starling.juggler实现计时器功能:
var delayedCall:DelayedCall = new DelayedCall(method, 2.0);
delayedCall.repeatCount = int.MAX_VALUE;
Starling.juggler.add(delayedCall);

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