人眼生理特性:視覺暫留( 0.1~0.4秒),小于0.1秒的外觀變化對于人眼來說就是連續的動畫。
如果相鄰兩幀的變化時間小于0.1秒,那麼該幀動畫對于人眼來說就是連續的。
“相鄰兩幀的變化時間小于0.1秒”意味着幀頻是多少呢?
1秒除以0.1秒/幀 = 10。也就是說幀頻為10的動畫對于人眼來說基本上就是“連續的”。
而Flashplayer預設的幀頻是24。
可以知道在預設幀頻下的幀變化都是連續的。
當然,幀頻越高,動畫越流暢,越細膩。
代價是Flashplayer要“拼命地”重新整理螢幕,消耗更多的電力資源。
在提倡綠色環保等而今天,不可為之啊。
引申開去,在AS的UI元件架構設計中,經常采用延遲渲染的方法(利用ENTER_FRAME事件)。這意味着實際的螢幕更新頻率變慢,相當于變相地降低幀頻。
假設Flashplayer的幀頻被設定為30,那麼每幀的時間=1/30 = 0.03秒,即便延遲3幀進行螢幕更新(渲染),0.03*3 =0.09 < 0.1(視覺暫留)。看起來仍然是連續。
這是UI元件架構設計中的理論基礎之一。