Flash Preloader,如何判断是否在gzipped环境中并相应加载

时间:2011-09-20 09:35:24

标签: actionscript-3 actionscript flash-builder preloader

闪光灯预加载器可以遇到两种状态 1)totalBytes是已知的(swf的最终文件大小)
2)totalBytes未知(如果服务器压缩服务/输出文件,则发生)。

我目前使用的是totalBytes == 0(Chrome,Safari),swf是不确定的,只显示带有loadedBytes的循环动画。
然而在Firefox totalBytes == loadedBytes中。我只能推测这是为了防止在预加载器尝试确定下载百分比时大量除零。

问题:
有没有其他方法可以确定我所处的预加载状态(确定文件大小或不确定文件大小)?

2 个答案:

答案 0 :(得分:1)

如果apache压缩或压缩来自服务器的所有流量,则swf文件会丢失其文件大小的信息。检查totalBytes值,该值通常应该是swf文件的大小,如果它是零,那么它在一个gzip压缩环境中。

if (loaderInfo.totalBytes == 0) // gzipped environment

然而,需要对Firefox进行特殊情况检查,因为firefox设置了totalBytes == loadedBytes。

if (loaderInfo.totalBytes == loaderInfo.loadedBytes) // gzipped environment
// OR the loaded swf is very small.
// check the load is COMPLETE Event, if !loadComplete than gzipped environment

答案 1 :(得分:0)

我建议你使用LoaderMAX。因为它非常简单易用,可以加载外部文件。检查this