2011-11-22 83 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