Dùng CompositionTarget.Rendering trong SL2 để tạo Animation là tối ưu…
Posted
03-16-2009 11:42 PM
by
Trinh Minh Cuong
Trong Blog viết về SilverLight của mình, MikeSnow đã so sánh các phương pháp tạo Animation:
1- Sử dụng DispatcherTimer
2- Sử dụng StoryBoard
3- Sử dụng CompositionTarget.Rendering.
Xem link
Dispatcher Timer for Animation and Game Loops
Tác cho rằng :
- StoryBoard được vận hành ở một thread riêng biệt không bị ảnh hưởng bơi UI thread mà DispatcherTimer ở đó.
- Độ mịn (resolution) của nhịp đồng hồ DispatcherTimer không bằng nhịp đồng hồ (timer) của StoryBoard.
- StoryBoard chạy ổn định hơn trong các môi trường hệ điều hành và web browser khác nhau.
(Xem thêm so sánh sự khác biệt giữa Timer và DispatcherTimer ở trang timer-vs-dispatchertimer-in-wpf/)
Trong bài viết sau đó, khi đã nâng cấp lên SilverLight 2. tác giả nói rằng thay vì dùng DispatcherTimer hay StoryBoard’s timer, chúng ta có cách mới : dùng CompositionTarget.Rendering để kích hoạt một hàm tạo hiệu ứng hoạt hình (thay đổi tọa độ, màu sắc, bóp méo, co, dãn..). Lưu ý CompositionTarget.Rendering được gọi ngay trước khi SilverLight vẽ lại các đối tượng trong composition tree.