2011-08-10 31 views
1

我已經創建了一個簡單的圖像列表,每60秒重新加載一次。但是,我注意到,當重新加載過程開始時,Flash似乎掛起或至少不接受/記住任何鼠標輸入。在Flash/AS3中使用Loader.load()函數時是否存在掛起或滯後現象?

具體而言,雖然它被認爲是凍結的,但我嘗試點擊一個按鈕來執行它的通常功能,它目前只是顯示鼠標停止狀態,但它不會註冊點擊,直到所有凍結結束。這導致我不得不再次點擊。

我真的需要知道,如果我加載說5個小PNG圖像(調用循環load() 5次)將這項事業的Flash掛起,並忽略任何鼠標輸入還是我談之色變,應該找問題的其他地方。

我知道Flash不是多線程的,但肯定會調用load()不會導致整個應用程序關閉100-200毫秒?

任何輸入,非常感謝,謝謝。

+0

我願意說,這肯定是造成凍結。看到我最近的答案在這裏:http://stackoverflow.com/questions/7017317/cpu-usage-in-as3/7017560#7017560。我剛剛發現官方文檔,與本機C代碼相比,Flash的運行速度約爲1.2%。所以不幸的是,我的朋友這很可能只是一個表現相關的問題。不過,可能有一種優化代碼的方法,因此請在此處發佈代碼,然後我們可以查看它。 :) – 2011-08-10 23:29:54

+0

感謝Ascension Systems公司的信息,儘管我真的很感謝一些相關的實際'load()'函數。你的其他回答給了我很多很好的信息,再次感謝。 – xLite

+0

任何機會我們可以看到一些代碼?您正在使用哪個課程來加載? – NoobsArePeople2

回答

0

要回答我自己的問題,沒有沒有滯後或掛起。 Flash設法很好地處理了所有事情,結果發現在使用MouseEvent.CLICK時應該小心,因爲如果在完成mousedown之後但在鼠標懸停之前重新加載映像對象時,Flash將不會發送點擊事件作爲避難所不會在同一個物體上產生一個mousedown和mouseup。這顯然讓我覺得有一個滯後,因爲它似乎Flash沒有註冊我的鼠標點擊。

感謝所有試圖解決問題的人。

2

在回答您的評論:

不能給比其他了確切的證據說,Loader對象實際上將SWF或某些類型的顯示對象,然後在內部閃修改二進制數據,然後在內部分析SWF或位圖類型並將其呈現給Loader對象中的.content顯示對象。 Nevermind在這一切之前調度提取二進制數據的URL請求。加載器對象的背景中有很多事情要做。如果你想要修改二進制數據的證據,只需加載一個圖像,然後將這些字節從加載器中拷貝出來並保存在某個地方。然後與原始數據進行比較。您將在那裏看到修改,事實上,如果您將輸出字節保存回圖像並嘗試用圖像查看器打開它,它將不起作用,這也是修改的證明。除此之外,你可以發佈一個鏈接到SWF,並讓其他人在這裏測試它,以確認他們遇到了同樣的情況,我相信它會。這是關於你得到的最多證明,因爲與Loader或顯示對象相關的任何代碼都是封閉源代碼,並且不包含在閃存虛擬機的開源部分Tamarin項目中。

相關問題