Actionscript 3 iPad2性能问题AdobeAIR

Actionscript 3 iPad2性能问题AdobeAIR,actionscript-3,ipad,air,adobe,Actionscript 3,Ipad,Air,Adobe,我正在为iPad开发一款带有高分辨率Flash插图的应用程序。在某些情况下,我需要将这些大图像从屏幕的一侧移动到另一个简单的移动动画。当我在iPad4上运行我的应用程序时,动画是平滑的。当我在iPad2上运行相同的应用程序时,图像移动非常困难,而且应用程序非常滞后 我目前的Adobe Air选项包括: 渲染模式:GPU 分辨率:高 舞台质量:高 有没有办法使这些设置适应不同的iPad设备?或者你还有其他建议吗? 非常感谢 如果“简单移动动画”是指跨多个帧从一个关键帧移动到另一个关键帧,这可能是处

我正在为iPad开发一款带有高分辨率Flash插图的应用程序。在某些情况下,我需要将这些大图像从屏幕的一侧移动到另一个简单的移动动画。当我在iPad4上运行我的应用程序时,动画是平滑的。当我在iPad2上运行相同的应用程序时,图像移动非常困难,而且应用程序非常滞后

我目前的Adobe Air选项包括: 渲染模式:GPU 分辨率:高 舞台质量:高

有没有办法使这些设置适应不同的iPad设备?或者你还有其他建议吗?
非常感谢

如果“简单移动动画”是指跨多个帧从一个关键帧移动到另一个关键帧,这可能是处理器速度较慢的问题。通过在输入帧循环中更改图像的“x”或“y”值,以编程方式移动图像。然后在图像到达所需位置时结束循环

如果您已经在做类似的事情,请向我们展示您的代码

有没有办法使这些设置适应不同的iPad设备?或 你还有其他建议吗

即使将“渲染模式”设置为gpu,对显示列表上的大分辨率图像进行变换也非常昂贵。我经常处理这个问题,我得到的最好结果是硬件加速库和框架,特别是Starling。我建议集成一个基本的starling设置,并将您的图像添加到QuadBatch中,然后您可以转换QuadBatch。这将利用GPU而不是CPU,您将看到更好的性能。下面是一个非常基本的示例,说明了它的外观:

首先,在包含库之后,设置通常在主类中开始:

private var _starling:Starling = new Starling( myClass, stage );
_starling.start();
这将启动starling,传递的myClass将被starling实例化。因此,在myClass中,您将执行以下操作:

//class level variable of type QuadBatch
private var _quadBatch:QuadBatch;

public function myClass() {
    //add event listener for added to stage
    addEventListener( Event.ADDED_TO_STAGE, onAdded );
}

private function onAdded( e:Event ):void {
    removeEventListener( Event.ADDED_TO_STAGE, onAdded );
    _quadBatch = new QuadBatch();
    addChild( _quadBatch );    //add quadbatch to the stage3d display list
    addImageToQuad();
}

private function addImageToQuad():void {
    //first you create a starling texture from your bitmap
    var texture:Texture = Texture.fromBitmap( myBitmapImage );

    //add it to the quad as a starling Image type
    var image:Image = new Image( texture );
    _quadBatch.addImage( image );
}

此时,您可以像处理任何其他显示对象一样使用_quadBatch执行所有正常的转换,并且它的执行应该更加平滑。这是一个非常基本的实现,但是如果您使用的是高分辨率图像,我强烈建议您尝试一下,因为使用默认的显示列表渲染不会获得更好的性能。最后,您可以将renderMode设置为direct,尽管我相信这在使用Starling/Stage3D时会自动发生。

请显示您的图像移动代码。您使用的帧速率是多少?对于低分辨率设备上的平滑动画,默认的24fps通常太低。尝试将其增加到30、48和60,看看是否有任何改进,但一定要测试整个应用程序。帧速率越高,每帧渲染的时间就越短,并且越有可能删除帧。只需通过计时器移动图像的x位置即可。定时器设置如下:定时器=新定时器1,0;