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.