frame rate issue of flash player 8,9

In flash, flex   May 8, 2006 - 3:10 pm

tinic 寫了一篇關於 frame rate 的文章

裏面提到了過去幾年來眾多玩家們曾嚐試在 frame rate 上動的各種手腳。

在以往,一個普遍的觀念是認為:拉高 frame rate, 例如從預設的 12fps 到 31fps,可以有效的增加 player的運作效率,進而導致更流暢的動畫與反應。

這點在 flex 2 (flash player 9)裏也仍然成立,flex 2 預設的 fps 是 24,但一般我都至少設成41,結果確實也是反應速度更快。

這裏面詳細的原因在 tinic 的文章裏有說明,但簡單的精華就是:

fps越高,代表 player redraw 畫面的 interval越短,而在 flex framework裏,許多事情是透過每次畫面的 redraw 來反映出來,例如 invalidateProperties() 就是在觸發後等待下一次的 frame redraw 才會顯示出來,因此拉高 fps 就代表者 player 會在更短的時間內將設定畫出來。

但 tinic 也在文章裏提到,flash player 實際上並沒有一個共通的 global frame rate,也就是說user雖然可以指定不同的 fps,但player在運作上因為種種因素可不見得(或有能力)完全去遵守。

tinic 的說法如下:

What does this mean? Well, the frame rate you select does not really mean too much and you should not depend on it in a way to be accurate to the millisecond.

總的來說來,拉高fps 時要考慮的事:

1、不同平台與不同版本的 player 會依據不同的 timer來做為計時與redraw的依據,光是在 windows 上,不同browser 內的 flash player plugin 取得 timer的方式就不同,而 stand alone 的 player 又更是另一回事。因此任何timer的設定最終都會越來越不準。

2、越高的 fps 代表消耗的cpu resource也更高,如果畫面上同時有許多swf,或user好死不死開了一狗票的 tab裏面每個都有一堆swf,那browser吃掉的資料恐怕就會很驚人,這也是 firefox 目前最痛的地方(到底 memory leak什麼時後要修好啊?)

不過目前 fp9 + 41fps 運作的很愉快,所以在沒炸掉前就先繼續吧…

by admin

留言回應

hidden

您的留言會先經過站長認証後才刊登在網站上。
your comments will be approved by Administrator before appearing on the page.

Trackback this post  |  Subscribe to the comments via RSS Feed

mobile phone