我认为我的问题可能在于使用大图片。让我来描述会发生什么。
我加载这些图像的方法是在时间轴中在第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应用程序使用更多内存吗?还有什么可以在这里发生?
答案 0 :(得分:0)
它与在显示器中绘制图像有关,您正在使用的图像非常大!你不能减少它们吗?你想做什么?我写了一个小类来将基本图像转换偏移到SIPS(仅限mac),因此您可以加载较小的代理图像。由于SIPS与GPU配合使用,因此超快!我正在使用300mb +图像,它几乎立即加载。
也许对任何人都有帮助:http://www.inklink.co.at/blog/?p=90