2011-11-22 79 views
5

我正在开发一个Flash文件,该文件将被上传到我无法控制的几十个网站。我发现其中一个似乎是swf,这导致loaderInfo.bytesTotal为零。这会加载动画。loaderInfo.bytesTotal为零时怎么办

我试过了一个解决方法,只是测试bytesTotal是否为零,如果是这样简单地继续。这是行不通的,因为正如所料,并非所有必要的数据都已加载。或者,我可以将任何预计的加载时间延迟一段时间,并希望它覆盖所有的基础。

有没有人有任何其他建议?理想情况下,有一种替代方法来定义bytesTotal,但我还没有找到。

FYI这有点与此相关的问题:Why loaderInfo.bytesTotal is Zero

但我不能做htaccess的建议,因为我没有在其他网站,其中一些可能是在Windows服务器上反正控制。

回答

0

如果可能的话,你可以通过flashvars传递总字节数或者将它存储在文件的somwhere中。 如果您使用一些脚本来定义文件以放置,您也可以调整大小并将其传递给闪存,以便在总数为0的事件中,您可以根据以其他方式给出的大小来计数进度。

这是我对这个问题唯一的解决方案。

+0

谢谢Jakub,这似乎工作得很好,我使用flashvar传递bytesTotal值。我最初只在loaderInfo.bytesTotal为0的情况下尝试使用flashvar版本,但事实证明,在Firefox上它不是0,但它也不正确,它比正确的值小得多。所以现在我把它设置为使用两者中的最高值(loaderInfo.bytesTotal vs flashvar bytesTotal)。 –

+0

不客气,如果你想要一个很好的装载机尝试使用[LoaderMax](http://www.greensock.com/loadermax/)。真正伟大的图书馆与大部分的东西已经实施。这就是我发现这个技术的地方。 –

0

您可能需要考虑更改您的方法,以便您的影片可以逐步加载。如果您在符号定义中取消选中“导出第1帧”,则所有内容都会加载到第一次使用/引用的位置。请注意,这只有在您允许Flash将大部分对象放在舞台上供您使用IDE时才能使用。要详细了解这种方法,请查看http://www.developria.com/2010/04/combining-the-timeline-with-oo.html。代码为这里的文章http://flexdiary.blogspot.com/2010/04/sample-code-for-oop-timeline-insideria.html

+0

谢谢艾米,看起来像一个有趣的技术。但是它需要一些更大的变化,所以我采用@JakubSłaby提出的想法 –

0

问题是Google Chrome使用他自己的Flash Player版本。如果你在Chrome设置中禁用它,bytesTotal将会很好。但是,当然,你不能告诉每个人都禁用它。

我发现解决方案如何在每种情况下完成整个加载完成时检测。你可以检查这个答案:Why loaderInfo.bytesTotal is Zero