Kurs obsługi programu Microsoft Expression Blend. Część 6 – animacje
Jedną z najbardziej efektownych funkcji aplikacji Microsoft Expression Blend jest możliwość tworzenia animowanych obiektów – począwszy od bardzo prostych rozwiązań, polegających na zmianie podstawowych parametrów elementu, aż po skomplikowane modele, których ważnym uczestnikiem jest użytkownik programu. Świat ruchomych obrazów staje więc przed nami otworem, a stosując narzędzia środowiska graficznego oraz instrukcje XAML, będziemy mogli pracować nie tylko wydajnie, ale i komfortowo. Przyjrzyjmy się zatem bliżej możliwościom, które program giganta z Redmond oferuje projektantom interaktywnych interfejsów.
Wprowadzenie
Zastanówmy się najpierw, czym w ogóle jest animacja. Nie wchodząc w szczegóły, można powiedzieć, że jest to iluzja stworzona za pomocą serii szybko zmieniających się obrazów. Ze względu na właściwości naszego oka, ciąg pojedynczych kadrów wyświetlanych w odpowiednio szybkim tempie, wywołuje wrażenie płynnego ruchu. Na tej samej zasadzie funkcjonuje oczywiście model animacji w Microsoft Expression Blend. Program dostarcza nam zestaw gotowych narzędzi do tworzenia profesjonalnych klipów oraz animowanych elementów, które mogą posłużyć do budowy interfejsu aplikacji. Na podstawową strukturę animacji w Expression Blend składa się linia czasu, służąca do definiowania poszczególnych kadrów (klatek kluczowych – keyframes) oraz wyzwalacze (triggers), reagujące na zdarzenia, takie jak wciśnięcie klawisza, ruch myszy czy zmiana wielkości obrazu. Wszystkie animacje tworzone są w omawianym wcześniej oknie Objects and Timeline, w panelu interakcji (Interaction Panel).
Okno Objects and Timeline.
Organizacja procesu animowania jest zawsze taka sama, bez względu na wiele możliwości tworzenia ruchu dla kontrolek czy obiektów. Expression Blend przetwarza poszczególne właściwości elementów, rzutując ich zmiany na odpowiednie fragmenty linii czasu. Animacji może przy tym podlegać dowolny atrybut obiektu – także ten, który nie jest bezpośrednio widoczny na ekranie.
System animacji w Windows Presentation Foundation
Przyjrzyjmy się teraz nieco dokładniej modelowi animacji w Windows Presentation Foundation. System ten zarządza wszystkimi mechanizmami generującymi zmiany danych w czasie oraz rysującymi obiekty na ekranie. Dostarczając odpowiednie klasy, uwalnia nas od konieczności samodzielnego definiowania podstawowych elementów, co cały proces czyni znacznie bardziej wydajnym.
Aby móc sprawnie posługiwać się systemem animacji w Windows Presentation Foundation, należy zapoznać się z kilkoma najważniejszymi koncepcjami, które legły u podstaw jego konstrukcji. Przede wszystkim pamiętajmy, że obiekty animowane są poprzez zmianę wartości ich poszczególnych właściwości. Gdybyśmy na przykład chcieli stworzyć klip prezentujący skalowanie elementu, powinniśmy odpowiednio zmodyfikować wartości Width oraz Height w wybranym punkcie czasu. W wypadku zmiany przezroczystości, będziemy z kolei animować atrybut Opacity – i tak dalej. Aby możliwe było utworzenie animacji, dana właściwość musi jednak spełniać pewne standardowe wymagania. Po pierwsze, musi mieć charakter zależny. Po drugie, musi należeć do klasy, która dziedziczy z DependencyObject i implementuje interfejs Ianimatable. Po trzecie zaś, rodzaj właściwości musi być zgodny z typem animacji. Jeśli zmianie będzie ulegać na przykład właściwość typu double, konieczne okaże się użycie typu animacji DoubleAnimation.
Typy animacji
Ponieważ animacje generują wartości właściwości, istnieją różne typy animacji dla różnych rodzajów właściwości. Zostały one zebrane w jednej przestrzeni nazw System.Windows.Media.Animation. Zastosowano także dla nich czytelną konwencję nazewnictwa, aby można było je łatwiej odróżnić. Nomenklatura to została zaprezentowana w poniższej tabeli:
|
Typy animacji w Windows Presentation Foundation |
|
|---|---|
| Nazwa | Opis |
| <Typ właściwości>Animation | Typ określany także jako animacja podstawowa lub From/To/By. Pozwala on na zmianę właściwości pomiędzy wartością początkową (From) i końcową (To), także poprzez dodanie wartości przesunięcia (By) do punktu początkowego. |
| <Typ właściwości>AnimationUsingKeyFrames | W tym wypadku możemy określić dowolną liczbę wartości docelowych, a także kontrolować metody ich interpolacji. Niektóre właściwości mogą być animowane tylko za pomocą tego typu animacji. |
| <Typ właściwości>AnimationUsingPath | Ten typ pozwala na użycie krzywych geometrycznych do tworzenia animacji. |
| <Typ właściwości>AnimationBase | Jest to podstawowa klasa abstrakcyjna, która pozwala na zmianę wartości określonego rodzaju właściwości. |
Przyjrzyjmy się wskazanym wyżej typom animacji na przykładach. Na początek stwórzmy prosty klip, w którym będziemy przemieszczać jeden obiekt – prostokąt – względem narysowanej na ekranie krzywej. Po uruchomieniu Expression Blend umieszczamy więc na siatce prostokąt oraz za pomocą pióra rysujemy krzywą:
Rysujemy krzywą w przestrzeni roboczej.
Następnie zaznaczamy oba elementy i zamieniamy je na krzywą ruchu (Motion Path), za pomocą opcji Convert To Motion Path, dostępnej w menu Object | Path. Przyjrzyjmy się, jak teraz wygląda panel interakcji. Jak widać, cała transformacja została automatycznie utworzona:
Widok okna Object and Timeline w panelu Interaction.
Zwróćmy uwagę na to, że program wygenerował także zdarzenie Window.Loaded (sekcja Triggers), które powoduje uruchomienie animacji (Timeline1 Begin). Cały klip ma w naszym wypadku trwać dwie sekundy i wykona się tylko raz. Oczywiście nie jest to jedyna dostępna możliwość. Klikając prawym przyciskiem myszy klatkę animacji, uzyskamy dostęp do opcji Edit Repeat Count, która pozwoli nam na ustawienie żądanej wielokrotności – w tym także powtarzania ciągłego animacji.
Spójrzmy teraz, jak nasza animacja prezentuje się w widoku kodu XAML:
|
<Storyboard x:Key=”Timeline1”> <DoubleAnimationUsingPath BeginTime=”00:00:00” Duration=”00:00:02” Source=”X” Storyboard.TargetName=”rectangle” Storyboard.TargetProperty=”(UIElement.RenderTransform) <DoubleAnimationUsingPath.PathGeometry> . . . . </DoubleAnimationUsingPath.PathGeometry> </DoubleAnimationUsingPath> <DoubleAnimationUsingPath BeginTime=”00:00:00” Duration=”00:00:02” Source=”Y” Storyboard.TargetName=”rectangle” Storyboard.TargetProperty=”(UIElement.RenderTransform) <DoubleAnimationUsingPath.PathGeometry> </DoubleAnimationUsingPath.PathGeometry> </DoubleAnimationUsingPath> </Storyboard> |
| Listing 1 – Prosta animacja obiektu. |
System Windows Presentation Foundation oferuje projektantom kilka wbudowanych klas animacji, na przykład DoubleAnimation, ColorAnimation, czy PointAnimation. Każda klasa służy do animacji wartości odpowiedniego typu – Double, Color, Point i innych.
Wspominaliśmy wcześniej o trzech koniecznych warunkach, które musi spełnić właściwość, by możliwe było stworzenie klipu. Ostatni z nich dotyczył zgodności rodzaju właściwości z typem animacji. Oczywiście nie oznacza to, że zakres naszych działań jest ograniczony do typów domyślnych – w Expression Blend możemy także tworzyć własne klasy. Gdybyśmy na przykład chcieli wygenerować animację dla tekstu w obiekcie TextBlock, to okaże się, że standardowo takiej klasy nie ma. Dlatego też będziemy musieli stworzyć własną klasę StringAnimation.
«poprzednia 1 2 3 4 ... 7 następna »
Komentarze
Aby dodać komentarz, musisz podać swój nick, treść komentarza oraz poprawnie przepisać oba słowa z obrazka
(słowa muszą być rozdzielone spacją).
W treści komentarza można używać języka formatowania BBcode.
Popularne
Nazwa padła ofiarą szantażystów, inni polscy hosterzy też zagrożeni?
22
Darmowy Internet od Aero2. Jak go zdobyć i jakie są prawdziwe koszta? Instrukcja krok po kroku
11
Programowanie w środowisku Android – wprowadzenie do projektowania aplikacji dla urządzeń mobilnych
17
Premiera Diablo 3 wzbudziła dyskusję na temat gier, które zawsze chcą być online
19
Nowy problem z Windows 8: bootuje się za szybko
10
Amerykańscy rodzice straszeni „e-narkotykami” dostępnymi w Sieci
21
Anonymous upubliczniają 1,7 GB danych wykradzionych Departamentowi Sprawiedliwości USA
12
Blueseed: libertariańska sztuczna wyspa przyciągnęła już ponad sto startupów z całego świata
8
Rewolucja w Firefoksie, nowa łatka czterokrotnie ograniczyła zużycie pamięci
20
Darmowy Internet od Aero2. Jak go zdobyć i jakie są prawdziwe koszta? Instrukcja krok po kroku
11
CVDazzle: makijaż jest w stanie pokonać automatyczne systemy ulicznego monitoringu
3
Programowanie w środowisku Android – wprowadzenie do projektowania aplikacji dla urządzeń mobilnych
17
Ubuntu 12.04 LTS już dostępny: stabilna dystrybucja na następne pięć lat?
28
Zostań webmasterem polskiego rządu, zarobisz na komfortowe życie dla siebie i swojej rodziny
33
Społeczność
anga star za droga ludzie wy myślicie!?Jestem 4 klasistką rodzice się nigdy nie...
Jan Zwyczajnych filmów tak kręcić się nie da co najwyżej krótkie scenki jak w...
piotrek____ @asdfgh - yup, też tak sądzę.
Tak jak wtedy ten przeciek o żołnierzu...
gonzales Javowcy pozdrawiają dotnetowców xD
kaziks Galaxy S II - u mnie po aktualizacji Firefox działa strasznie zacina się...
Doniek Szkoda że strona z demo nie działa - non stop się przeładowuje
bartez Niech zaczną jeszcze bardziej ograniczać programistów, to zdziwią się ilu...
- Najdmen.pl: Konta www z wyłączonym licznikiem transferu od IONIC.pl (1)
- 2BE.PL: [Oferta] Promocja jak złoto w 2BE.PL (1)
- gardius: Dobra hurtownia sportowa (1)
- gardius: Tanie książki gdzie warto kupować? (1)
- Najdmen.pl: PROMOCJA, 500 DOMEN .EU ZA 1 PLN NETTO ! (1)
- VMLine: [Oferta] Serwery VPS Xen-HVM/OpenVZ z darmową administracją (2)
- Marek: Generowanie PDFa (2)
Polecane książki
Praca
Czytaj Webhosting
Chcesz być na bieżąco z naszymi informacjami? Zapisz się na Newsletter.
Zarejestruj domenę
Sprawdź dostępność swojej domeny:
| .pl: | 0 zł | .com: | 19.90 zł | |
|---|---|---|---|---|
| .com.pl: | 0 zł | .eu: | 19.90 zł |












#1 tutukus 2009-05-27 11:48:28 0
IP: 217.74.68.[...] Opera/9.62 (Windows NT 5.1; U; pl) Presto/2.1.1