当我通过动作脚本3.0中的deng.fzip.FZip解压缩大文件(300MB)时应用程序崩溃

时间:2013-08-07 06:18:35

标签: actionscript-3 zip compression

如标题所述,我使用第三方pacakge'deng.fzip.FZip'解压缩一个大文件,大约300MB,应用程序崩溃。我发现fzip.load(url:URLRequest)函数是同步的,不同步。我认为原因可能是fzip将总数据加载到自身,然后导致应用程序内存不足。如何在动作脚本3.0中解压缩一个大的.zip文件? 提前thx!

1 个答案:

答案 0 :(得分:0)

请记住,无论您在“发布”设置中设置了什么超时,同步方法在Flash Player中的执行时间都不会超过15秒(在AIR中可以更长)。

最好的办法是打开进行解压缩的Class,并在该循环中做一个小的检查:

// before loop
var startingTime:int = getTimer();

// inside the loop
if (getTimer() - startingTime > TIMEOUT_VARIABLE_HERE)
{
    // save the i position, break the loop, set timeout for, let's say, 30 ms and start the loop with i = your saved i when breaking out of the loop.
}

这不是一个花哨的解决方案,可以在一秒钟内解决您的问题,但它是解决实际问题的一种非常好的,强大的方法。

不确定这是否相关,但是一个小注:官方Flash Player支持的文件不超过100 MB。 不过我已经看到了一些闪存游戏(在alpha测试中)消耗了超过2GB的内存并且运行良好。