Flash中的大图像性能问题(AIR app)

时间:2012-03-14 17:00:27

标签: performance image air

我认为我的问题可能在于使用大图片。让我来描述会发生什么。

我加载这些图像的方法是在时间轴中在第2帧上包含我的类DynamicImage的所有实例。它基于之前已读入的XML加载图像。

public class DynamicImage extends DynamicSingleImage
{

    //var eLoader:Loader; //for english image
    var aLoader:Loader; //for alternate language image
    public function DynamicImage()
    {
        //loadMyImage(); //don't need to do this...super does this
        ...         
    }

    override public function loadMyImage () :void 
    {
        ...
            }

当我们进入第2帧时,对我来说并不重要......应用程序只会加载资产。

所以只是为了简化这个问题......我有两个加载的动态图像(它们是3840 x 2400)。我有一个切换按钮,可在两个图像之间切换。我们称他们为A和B.

行为如下。 A是默认的。 当我第一次切换到B时...在B显示之前有一瞬间延迟。现在当我在A和B之间来回切换(改变他们的“可见”属性)时......它非常直接。然后我继续使用我的应用程序的其他部分...其中还有一些我打开/关闭的大图像(也使用visible = false / true)。当我回到A& B,当我第一次切换时,我再次看到第二次延迟!

是因为闪存正在从内存中加载/卸载这些图像吗?我应该尝试让这个AIR应用程序使用更多内存吗?还有什么可以在这里发生?

1 个答案:

答案 0 :(得分:0)

它与在显示器中绘制图像有关,您正在使用的图像非常大!你不能减少它们吗?你想做什么?我写了一个小类来将基本图像转换偏移到SIPS(仅限mac),因此您可以加载较小的代理图像。由于SIPS与GPU配合使用,因此超快!我正在使用300mb +图像,它几乎立即加载。

也许对任何人都有帮助:http://www.inklink.co.at/blog/?p=90