Cách tắt ảnh động trong Windows 7. Nguyên tắc cơ bản về ảnh động trong WinRT

Nguyên tắc hoạt hình cơ bản

Thoạt nhìn, có vẻ như các lập trình viên làm việc trên trò chơi hoặc mô hình hóa cần nhiều hoạt ảnh hơn. quá trình vật lý. Chúng có thực sự cần thiết trong các ứng dụng kinh doanh yên tĩnh và đáng kính không?

Tuy nhiên, hình ảnh động phát vào Ứng dụng Windows 8 đóng một vai trò quan trọng hơn bạn tưởng. Chủ đề này sẽ được đề cập sau khi chúng ta xem xét việc sử dụng XAML để tạo các đối tượng ControlTemplate ghi đè hoàn toàn hình thức của các điều khiển. Và mặc dù hầu hết khía cạnh quan trọng ControlTemplate là một cây trực quan, mẫu cũng phải mô tả sự thay đổi vẻ bề ngoài kiểm soát trong một số điều kiện. Ví dụ: điều khiển Nút có thể được đánh dấu khi được nhấp vào hoặc tô màu trong màu xám khi bị chặn. Tất cả những thay đổi này đối với giao diện của ControlTemplate được xác định là hoạt ảnh - ngay cả khi thay đổi diễn ra tức thời và có chút giống với hoạt ảnh.

Hoạt ảnh cũng được sử dụng để xác định quá trình chuyển đổi giữa các chế độ xem khác nhau của ứng dụng hoặc chuyển động của các thành phần khi thực hiện thay đổi đối với bộ sưu tập. Hãy thử di chuyển ô tới màn hình chính từ nơi này đến nơi khác - bạn sẽ thấy các ô liền kề di chuyển theo phản ứng. Tất cả điều này được thực hiện thông qua hình ảnh động, đóng một vai trò quan trọng trong tính thẩm mỹ năng động của Windows 8. Trong nhiều ứng dụng hiện đại, chẳng hạn như chương trình học ngôn ngữ lập trình pascal abc, hình ảnh động được sử dụng để nâng cao khả năng của giao diện người dùng.

Không gian tên Windows.UI.Xaml.Media.Animation

Bài viết “Timer and Animations in WinRT” hướng dẫn cách tạo hiệu ứng động cho đối tượng bằng sự kiện CompositionTarget.Rendering- một kỹ thuật mà tôi gọi là hoạt hình “thủ công”. Mặc dù hoạt hình vẽ tay có thể khá mạnh mẽ nhưng nó cũng có những hạn chế. Phương pháp gọi lại luôn chạy trên luồng giao diện người dùng, điều đó có nghĩa là hoạt ảnh có thể làm chậm phản hồi của chương trình đối với hoạt động nhập của người dùng.

Ngoài ra, các hoạt ảnh được thể hiện bằng CompositionTarget.Rendering hoàn toàn tuyến tính, nghĩa là chúng tăng hoặc giảm tuyến tính một số giá trị theo thời gian. Thường thì một sự thay đổi nhỏ trong nhịp độ của hoạt ảnh sẽ khiến nó dễ chịu hơn; Thông thường, hoạt ảnh tăng tốc ở phần đầu và chậm lại ở phần cuối, đôi khi có một chút "chuyển động ngược" để tăng thêm tính chân thực. Tất nhiên, những hoạt ảnh như vậy cũng có thể được thực hiện bằng CompositionTarget.Rendering, nhưng việc tổ chức các phép tính cần thiết có thể khó khăn.

Các ví dụ sau sẽ sử dụng các công cụ hoạt hình Windows Runtime tích hợp, bao gồm 71 lớp, 4 kiểu liệt kê và 2 cấu trúc, được kết hợp thành một namespace Windows.UI.Xaml.Media.Animation. Những hoạt ảnh này thường chạy trên các luồng nền và hỗ trợ một số khả năng để triển khai các hiệu ứng không tầm thường. Rất thường xuyên, hoạt ảnh được xác định hoàn toàn bằng XAML và sau đó được kích hoạt từ mã hoặc (trong một trường hợp đặc biệt nhưng phổ biến) từ XAML.

Tất nhiên, ý tưởng thành thạo các công cụ hoạt hình từ 71 lớp có vẻ khó khăn. May mắn thay, các lớp này được chia thành nhiều loại chung và khi đọc xong tài liệu này, bạn sẽ hiểu đầy đủ về cấu trúc không gian tên.

Hoạt hình dựa trên những thay đổi trong một số thuộc tính của một đối tượng. Thuộc tính này thường được gọi "thuộc tính mục tiêu" của hoạt ảnh. Hoạt ảnh Thời gian chạy Windows yêu cầu thuộc tính đích phải được hỗ trợ bởi thuộc tính phụ thuộc và do đó được xác định trong lớp bắt nguồn từ DependencyObject.

Trong một số môi trường đồ họa Hoạt ảnh khung được hỗ trợ, trong đó tốc độ của hoạt ảnh được xác định bởi tốc độ khung hình của màn hình. Sự khác biệt về tốc độ khung hình trên các nền tảng phần cứng khác nhau có thể khiến nhịp độ hoạt ảnh bị bóp méo. Hoạt ảnh Windows Runtime được phân loại là đồng bộ, nghĩa là chúng được thực thi sau các khoảng thời gian thực tế: giây và mili giây.

Điều gì xảy ra nếu luồng chạy hoạt ảnh có một số việc phải làm và hoạt ảnh bỏ qua một vài nhịp? Hoạt ảnh khung thường tiếp tục kể từ thời điểm nó bị tạm dừng. Đồng bộ Hoạt hình Windows Thời gian chạy thích ứng với thời điểm hiện tại và tiếp tục từ trạng thái mà nó phải như vậy.

Một ví dụ đơn giản về việc sử dụng hình ảnh động

Hãy bắt đầu bằng cách tạo hoạt ảnh cho thuộc tính FontSize của phần tử TextBlock. Dự án sau đây chứa bảng Lưới hai hàng với trường TextBlock và Cái nútđể bắt đầu hoạt ảnh. Hoạt ảnh rất thường được xác định trong phần Tài nguyên phần tử gốc Tệp XAML. hoạt hình đơn giản bao gồm các đối tượng Bảng phân cảnhHoạt hình đôi: