2014-04-10 65 views
0

ENTER_FRAME總是被接收到,即使另一個進程佔用CPU,或者監聽器可能會錯過一個或多個ENTER_FRAME事件 - 然後通常會在Windows中發生批量延遲的那些事件中的幾個? (我正在使用純3D AS3和Stage3D與3D GPU渲染 - 無2D顯示對象,Flash時間軸,動畫片段等)。可以錯過ENTER_FRAME事件或接收器延遲接收嗎?

+0

哦,沒有必要發佈幾個問題 - 你可以編輯第一個問題:) –

+0

是否允許多個問題(在同一主題上)? – BEIC

回答

0

ENTER_FRAME取決於幀速率。幀速率並不是一個常數 - 它取決於很多因素,其中很少是CPU和GPU。監聽器不會錯過任何事情,只是ENTER_FRAME事件將不規則地發送。

+0

所以,你的意思是說,在GPU結束處理前一幀以便AS3開始準備下一幀渲染之後,正在分派ENTER_FRAME事件?我希望它會與桌面(和監視器)幀速率(其中**是常數)同步發送,然後代碼將處理較長渲染的情況,而一切都將始終同步(爲什麼他們使簡單的事情困難 - 我想知道)。 – BEIC

+0

不,幀速率與任何內容不同步。它可以改變,甚至可以是0(CPU/GPU超載)。這並不意味着什麼都沒有發生,這意味着幀沒有結束,新的幀將不會開始,直到當前進程結束。監視器幀速率與Flash無關。它已經建立了一個接一個的預定步驟的流水線,新框架將在前一個流程結束後開始。 –

+0

因此,只有在當前幀的所有處理完成後纔會發出新的ENTER_FRAME,這要感謝信息,但如果在每幀結束之前完成所有處理,則會在下一幀嘗試開始時(通過發出ENTER_FRAME)與桌面刷新信號同步? – BEIC