2011-06-01 23 views
1

我正在爲我正在構建的Flash應用程序構建預加載器。我正在尋找一種方法來獲得所有預加載器用於跟蹤下載進度的ProgressEvent.PROGRESS中更詳細的百分比。當我運行的裝載機百分比一個trace()語句一個小文件,我的輸出窗口顯示是這樣的:ActionScript預載更加詳細的百分比

4 
8 
13 
17 
23 etc... 

我正在尋找一種方法能夠更密切地監視這種進步,所以我得到1, 2, 3, etc... 。如果數字重複,那沒關係。我的預加載程序的部分依賴於這些值,因此,能夠從1 - 100中獲得它們並且不會跳過整個數字將是非常好的。

謝謝你的時間。

+0

您是使用某種打包預加載器還是手動執行? – 2011-06-01 01:07:28

回答

2

這沒有任何意義 - 除非您的互聯網連接一次加載文件的正好1%

發生什麼事是每個新數據包收到後,它可以是任何大小根據您的下載速度(比如說在200和230kb之間)。每收到一個這樣的郵件,就會發送ProgressEvent.PROGRESS,並按照您的預期添加到已加載的總百分比。

所以基本上,我們說,我們正在加載1000KB文件,你的下載速度是100-150kbps。當一個新的數據包已經收到

每個trace()在函數調用上的ProgressEvent.PROGRESS每個調度會運行,因此:

100KB加載 - 總共100個 - 跟蹤 120KB裝 - 220總 - 跡線加載22個
150KB - 370 總 - 跟蹤37

等等

+0

啊...好的細節。看起來我不得不補償一些額外的ActionScript爲這種細節。謝謝你的幫助,Marty! – 2011-06-01 01:09:49

+0

你可以發佈你的代碼spryno,謝謝。 – 2011-06-01 01:10:47

+0

我可以,但它是一個獨特的預加載器(不是傳統的進度條之一),它是一個BIG類的內部,它剛剛開始變大!我知道如何彌補ActionScript中的這些空白,所以我想我會這麼做。我只是在尋找一個快速的解決方法。儘管感謝您的幫助! – 2011-06-01 01:15:01

-2

你的幀率有多快?可能是因爲它設置得太低,導致進度刷新頻率降低。我會嘗試增加你的幀率或主要電影。

另一種常見的方法是通過在兩個區間之間補間值來模擬它,所以看起來更平滑。但這聽起來並不像你想要達到的效果。

+0

嗯...我會看看那個。唯一的問題可能是位於外部類的事實。 – 2011-06-01 01:08:21

+0

謝謝,但它看起來像增加幀率,說100,沒有工作。 – 2011-06-01 01:09:15

+1

顯示列表與ProgressEvent完全無關,除非他正在執行的是在ENTER_FRAME中進行跟蹤,而不是首先使用ProgressEvent的情況。 – 2011-06-01 01:10:01

0

你究竟需要這些百分比?有沒有辦法強制URLLoader給你每1%的更新,但你可以僞造它。

如果你想估計你的下載速度,你可以通過getTimer獲取時間,以及每次獲得進度事件時從ProgressEvent到目前爲止下載的數量;一旦你有了,你可以比較新舊值,並獲得你的下載速度的近似值。

你可以做一個類似的事情平滑一個進度條,一旦你有一個下載速度,你可以鳴叫你的進度條,並得到一個小的更新每一幀和更準確的更新,每次你得到一個ProgressEvent。