椋鸟框架动画在输入框架上不稳定

时间:2013-01-29 17:49:24

标签: starling-framework

我用starling创建了一个基本的as3 web项目。所有iam正在创建一个简单的图像,并在onEnterframe中沿x移动图像。但似乎动画/动作并不平滑,每隔几帧就会出现帧/急动的跳跃。下面是onEnterFrame和用于创建图像的测试功能。对此有任何帮助非常感谢。

    private function onEnterFrame(e:Event):void
    {
        if(!img)
            return;
        img.x += 1;

        if(img.x >= 960)
            img.x = 0;
    }

    private function test():void
    {
          img = new Image(sAssets.getTextureAtlas("atlas").getTexture("flight_00"));
          addChild(img);
          img.x = 0;
          img.y = 320;
    }

1 个答案:

答案 0 :(得分:3)

那是因为每一帧的时间略有不同。要实现平滑动画,请使用passedTime参数声明onEnterFrame处理程序(存储自上一帧以来经过的时间)并使用此值移动对象,而不是假设每个帧将持续1 / frameRate秒。

private function onEnterFrame(passedTime:Number):void
{
    if(!img)
        return;

    img.x += passedTime * 100; // speed is 100 px/sec

    if(img.x >= 960)
        img.x = 0;
}

注意:Starling的最新版本支持这种形式的事件处理程序(没有事件参数),并且应该更高效。如果使用旧版本,则可以从事件对象的相应属性获取传递的时间。