2011-03-07 23 views
0

我想使用Actionscript實現inspection time任務。這個想法是根據用戶的響應動態地改變屏蔽和非屏蔽圖像之間的時間間隔。 「檢查時間」被定義爲用戶達到一定準確度的時間間隔。影響該間隔精度的因素有很多:監視器刷新率,閃存虛擬幀率,定時器事件準確度,渲染時間。還要別的嗎?我如何確定用戶看到的實際變化?由於該任務的典型性能爲20至80毫秒,因此需要高精度。我認爲限制因素是顯示器刷新率。如果它是60赫茲,我只能增加16.7毫秒。任何方式繞過這個限制?如果我使用更高的幀速率,播放器是否仍將其同步到60Hz?如何確定用戶在兩個連續圖像之間看到的實際時間間隔

回答

2

Flash播放器可達到的幀率有一個上限。雖然技術上可以將該值設置爲高於60fps,但如果用戶安裝了現代版本的Flash Player,我認爲屏幕不會比此更快地刷新。另外,你設置的幀率並不重要,因爲這意味着玩家應該盡其最大努力以這種速度刷新......如果可能的話,它會這樣做!但是,有很多因素可能會讓玩家無法實現該幀率。

  1. 一個複雜的場景,有許多不同的影片剪輯,多重嵌套。
  2. 過度使用的掩模的
  3. 反覆施加濾波器
  4. 特別複雜或在ENTER_FRAME或定時器事件處理程序實現低效的代碼(或其中許多)
  5. 複雜對象圖形
  6. 浪費地實例化和處置對象,從而迫使垃圾收集(這會導致在非常高的幀率下發生明顯的打嗝)。

    還應該注意的是,即使在最好的情況下,您也不能真正依賴更新之間的增量時間,即ENTER_FRAME或TIMER,以保持100%一致。

希望這會有所幫助。

+0

同意,100%。 Flash播放器可能不是您的項目描述中的目標平臺。 – jpea 2011-03-07 01:48:33

相關問題