闪存预加载器可能会遇到两种状态。
1) totalBytes是已知的(swf的最终文件大小)
2) totalBytes未知(如果服务器正在压缩服务/输出文件,则会发生这种情况)。
我目前使用的totalBytes == 0 (Chrome,Safari)的swf是不确定的,并简单地显示一个循环动画与loadedBytes显示。
然而,在火狐totalBytes == loadedBytes中。我只能猜测,这样做是为了防止在预加载器尝试确定下载百分比时出现许多被零除的异常。
问题是:
是否有其他方法可以确定我处于哪种预加载状态(确定的文件大小或不确定的文件大小)?
发布于 2011-09-23 12:23:52
如果apache压缩或gzip来自服务器的所有通信,则swf文件将丢失有关其文件大小的信息。检查SWF值,它通常应该是totalBytes文件的大小,如果它是零,那么它是在gzipped环境中。
if (loaderInfo.totalBytes == 0) // gzipped environment然而,因为火狐设置了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发布于 2011-09-20 20:23:49
我建议您使用LoaderMAX。因为它在加载外部文件时非常简单和容易使用。检查this
https://stackoverflow.com/questions/7483046
复制相似问题