方法 | 優點 | 弊端 | 什麼時候使用合適?(建議) | 什麼時候最好不要使用(建議) |
DispatcherTimer |
相對穩定
|
最小識別率約15毫秒(個人理解爲頻率過快將導致跳幀或無效,即極限爲15豪秒) | 緩慢移動的物體,聯合Storyboard一同控制動畫 | 在處理一個移動非常快的物體對象時,建議使用Storyboard as Trigger或CompositionTarget.Rendering提高幀速率。 |
Storyboard | 平滑的動畫 | 沒有複雜的運動效果,例如行星、遊戲等的無規則Path運動(這結論也太…… ^^||) | 簡單的移動模式方面 | 如果想通過更多的後臺代碼去控制動畫,建議還是使用CompositionTarget.Rendering。(這建議真的很暈……) |
Thread | 基於線程,均衡的每幀運行。在多核中效果更好 | 在很短的間隔內不穩定(2幀間) | 需要大量計算,耗CPU的處理 | 如果你的電腦只有1個CPU,或者需要更快的動畫效果,還是請選擇其他的方法 |
CompositionTarget.Rendering | 非常穩定,保證會運行到位 | 無法進行細節控制,因爲頻率是固定的,基於畫面刷新觸發,公式:1000/<frames-per-secspecified- in-html> [msec] |
複雜的邏輯,如遊戲中的一些循環等邏輯(原話看得不是很懂……) | 一些瑣碎的處理,例如遊戲中的雲朵從左飄到右,則建議使用Storyboard代替。 |
Storyboard as Trigger | 類似DispatcherTimer,在300FPS下運行流暢 | 和DispatcherTimer一樣 | 類似DispatcherTimer | 和DispatcherTimer一樣 |
SilverLight五種動畫處理比較
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.