R09-04(3).DOC

(468 KB) Pobierz
Po prostu









Część 5.

Przetwarzanie informacji

 


 

 


9









Kontrolowanie
przepływu informacji

 

 



 

Części składowe języka HTML

295


















Kontrolowanie przepływu informacji

Kontrolowanie przepływu informacji

Kiedy w filmie Flasha wyświetlana jest grafika, animacja i odtwarzane są dźwięki, wiele rzeczy dzieje się „za kulisami” – rzeczy, których odbiorca filmu nie dostrzega. Dokument Flasha może przetwarzać niezliczoną ilość informacji, np. liczbę żyć, które pozostały jeszcze graczowi, nazwę użytkownika i hasło, czy też artykuły, które klient umieścił w wirtualnym koszyku. Określanie i przechowywanie takich informacji wymaga zastosowania zmiennych, które stanowią niejako pojemniki na dane. Zmienne są kluczowym elementem każdego filmu Flasha z mocno rozbudowaną interaktywnością, jako że umożliwiają tworzenie scenariuszy działań w oparciu o zmieniające się informacje. Zmienne można modyfikować, a następnie używać ich w wyrażeniach – formułach łączących zmienne z innymi zmiennymi i wartościami – i sprawdzać informacje, ustalając warunki, w celu określenia dalszego zachowania filmu Flasha. Takie właśnie sprawdzanie wykonuje się przy pomocy wyrażeń warunkowych, kontrolujących przepływ informacji. Wyrażenia warunkowe szacują napływające dane, a potem nakazują Flashowi wykonanie działania określonego na podstawie otrzymanej informacji. Wyobraźmy sobie sytuacją, w której wyrażeń warunkowych możesz użyć choćby do odbicia piłki w przypadku wystąpienia jej kolizji ze ścianą czy też do zwiększenia szybkości poruszania się piłki, jeśli czas gry przekroczy jedną minutę.

Niniejszy rozdział opowiada o zarządzaniu danymi za pomocą zmiennych, wyrażeń i warunków. Zetknąłeś się już częściowo z tym tematem we wcześniejszych rozdziałach, teraz jednak omówimy go bardziej szczegółowo. Zrozumienie zasad wprowadzania, modyfikowania i szacowania danych pomoże ci prawdziwie „reżyserować” twoje filmy i dynamicznie zmieniać poszczególne jego elementy: grafikę, animację i dźwięk.

 


Deklarowanie danych

Deklarowanie danych

Zmienne służą do przechowywania informacji. Zmienne możesz tworzyć, zmieniać ich zawartość i odrzucać w dowolnej chwili. Proces podstawiania informacji do zmiennej po raz pierwszy nazywa się deklarowaniem zmiennej. Deklarowanie i przekształcanie zmiennej odbywa się przy udziale akcji set variable. Zmienne deklarowałeś już wcześniej, tylko nie nazywaliśmy tak tego procesu. Kiedy tworzysz nowe obiekty za pomocą akcji set variable, jak w wyrażeniu mójKolor = nowy Kolor (mójKlipFilmowy), jednocześnie deklarujesz zmienną (tutaj mójKolor). W tym akurat przypadku zmienna przechowuje obiekt koloru, ale ogólnie może przechowywać dowolny typ informacji, np. liczbę, litery, wartość — prawda lub fałsz, a nawet odwołanie do innej zmiennej. Różne typy informacji przechowywanych w zmiennych noszą nazwę typów danych.

 

Zmienne i typy danych

Przykładami typowych zmiennych mogą być: wynik gracza (zmienna liczbowa), obiekt dźwiękowy (zmienna łańcucha danych), stan włączony lub wyłączony przycisku wyboru (radio button) (zmienna boole’owska). Typ danych przechowywanych w zmiennej można łatwo zmienić. Zmienna zadeklarowana pierwotnie jako zmienna liczbowa może zostać zmieniona w dowolnej chwili odtwarzania filmu na zmienną łańcucha danych przez wprowadzenie nowej akcji set variable. Jednak lepiej jest utrzymywać stały typ zadeklarowanych zmiennych, dzięki czemu w czasie manipulowania nimi nie zostaniesz zaskoczony niespodziewanymi rezultatami (jak np. mnożenie łańcucha znaków przez inny łańcuch znaków). Różne typy danych przechowywanych w zmiennych przedstawia tabela 9.1.

Nazwy zmiennych powinny opisywać rodzaj przechowywanych w nich informacji. Na przykład, punktyGracza i prędkośćPojazdu są zupełnie poprawnymi nazwami zmiennych i z pewnością przyprawią cię o mniejszy ból głowy, niż coś w rodzaju xyz lub mojaZmienna. Zwykle zapisuje się nazwy zmiennych bez spacji pomiędzy wyrazami, za to z wielką literą rozpoczynającą każdy kolejny wyraz za wyjątkiem pierwszego.

 

Tabela 9.1. Typy danych do przechowywania w zmiennych

Typ danych              Opis              Przykład

Liczba

Wartość liczbowa.

mójWynik = 24

Łańcuch znakowy

Sekwencja znaków, liczb lub symboli. Łańcuch zawsze zapisuje się w cudzysłowie.

twójEmail = "johndoe@domena.com"

Typ boole’owski

Wartość typu prawda (true) lub fałsz (false). Nie stosuje się cudzysłowu. Zamiast prawda można pisać 1, a w miejsce słowa fałsz podstawiać 0.

przyciskOpcji = true

Obiekt

Nazwa obiektu utworzonego za pomocą funkcji konstruktora.

jKolor = nowy Kolor(mójFilm)

 


Deklarowanie danych

Rys. 9.1. Zmienne można deklarować do przechowywania różnych typów informacji. Liczba (u góry) wymaga zaznaczenia pola wyboru Expression obok pola Value. W przypadku łańcucha znakowego (u dołu) pole wyboru Expression obok pola Value pozostawia się niezaznaczone

 

W celu zadeklarowania zmiennej:

1.   Zaznacz pierwsze ujęcie kluczowe na głównej listwie czasowej i otwórz paletę akcji.

2.   Wybierz Actions/set variable (Esc + sv).

3.   W polu Variable palety akcji wpisz nazwę zmiennej. Pole Expression pozostaw niezaznaczone.

4.   W polu Value wprowadź informację, którą ma przechowywać zmienna. Może to być liczba, nowy obiekt, łańcuch znaków lub wartość boole’owska. Pole Expression pozostaw niezaznaczone, jeśli użyłeś łańcucha znakowego jako typu zmiennej (rys. 9.1).

Wskazówki

n     Istnieją pewne słowa, których nie możesz używać w nazwach zmiennych, ponieważ są zarezerwowane dla specjalnych funkcji lub słów kluczowych języka ActionScript. Jeśli użyjesz tych słów jako zmiennych, Flash będzie je mylił właśnie ze słowami kluczowymi lub funkcjami, którym normalnie odpowiadają. Wśród nich znajdują się następujące słowa: break, for, new, var, continue, function, return, void, delete, if, this, while, else, in, typeof, with, true i false.

n     Dobrze jest deklarować zmienne w pierwszym ujęciu na listwie czasowej. W ten sposób trzymasz je wszystkie w jednym miejscu i łatwo możesz przejść do edycji ich wartości.

 


Deklarowanie danych



myMovieClip

X=100

Często będzie zachodzić potrzeba podstawienia do zmiennej określonej właściwości obiektu i przechowania jej na później. Przykładowo, mógłbyś chcieć zachować współrzędne x i y klipu filmowego, żeby po przeciągnięciu klipu przez użytkownika w nowe miejsce, Flash mógł przywrócić jego pierwotną pozycję. W celu wywołania takiej właściwości można posłużyć się ścieżką dostępu do niej (używając składni z kropką) lub też funkcją getProperty.

W celu
przypisania właściwości do zmiennej
przez podanie ścieżki dostępu:

1.   Zaznacz pierwsze ujęcie kluczowe na listwie czasowej i otwórz paletę akcji.

2.   Wybierz Actions/set variable.

3.   W polu Variable palety akcji wpisz nazwę swojej zmiennej. Pole Expression pozostaw niezaznaczone.

4.   W polu Value wprowadź ścieżkę dostępu do wybranej właściwości, oddzielając kolejne poziomy kropką. Zaznacz pole Expression (rys. 9.2).

W celu
przypisania właściwości do zmiennej
przez zastosowanie
funkcji getProperty:

1.   Zaznacz pierwsze ujęcie kluczowe na listwie czasowej i otwórz paletę akcji. Wybierz Actions/set variable.

2.   W polu Variable palety akcji wpisz nazwę swojej zmiennej.

3.   W polu Value wybierz Functions/ getProperty.

W polu Value pojawi się akcja getProperty wraz z argumentami target oraz property (rys. 9.3).

 

Rys. 9.2. Użyj składni z kropką do podstawienia właściwości obiektu do zmiennej. Tutaj zmiennej myXPosition odpowiada współrzędna x obiektu myMovieClip w głównej listwie czasowej. Obecnie zmienna ta przechowuje wartość 100

 

Rys. 9.3. Akcja getProperty wymaga podania argumentów target i property

 


Deklarowanie danych

Rys. 9.4. Argumentem target jest ścieżka _root.myMovieClip, a właściwość to współrzędna x klipu filmowego myMovieClip. Wartość ta przypisana jest zmiennej myXPosition

 

4.   W miejsce argumentu target wpisz ścieżkę dostępu, a w miejsce argumentu property – wybraną właściwość. Zaznacz pole Expression (rys. 9.4).

Wskazówka

n     Kiedy przypisujesz zmiennej właściwość lub odwołanie do innej zmiennej, Flash określa aktualną wartość i podstawia ją do zmiennej. Jeśli taka właściwość lub odwołanie do zmiennej zmienia swoją wartość, wartość twojej zmiennej pozostanie taka sama jak na początku, aż do momentu przypisania jej wartości na nowo. Oto przykład:

xPosition = _xmouse

Po zadeklarowaniu tej zmiennej, o nazwie xPosition w pierwszym ujęciu twojego filmu, przechowuje ona wartość współrzędnej x położenia wskaźnika myszy. W czasie przesuwania wskaźnika po ekranie właściwość _xmouse oczywiście ulega zmianie, jednak wartość zmiennej xPosition pozostaje taka, jak w momencie deklaracji (czyli wykonania akcji wyrażenia set variable). Żeby zmienna mogła przyjmować nowe wartości, trzeba umieścić ją w pętli, tak jak zdarzenia klipu filmowego EnterFrame lub Mouse move.

 


Deklarowanie danych

Łańcuchy znakowe i wyrażenia

Kiedy używasz akcji set variable do podstawienia informacji do zmiennej, masz możliwość zaznaczenia opcji Expression w bloku edycji parametrów dla pól Variable oraz Value (rys. 9.5). Zaznaczenie tej opcji dla pola Value powoduje usunięcie znaku cudzysłowu otaczającego wprowadzoną informację i traktowanie jej jako wyrażenia, a nie łańcucha znakowego. Wyrażenie to linia kodu, mogąca zawierać zmienne, właściwości i obiekty, które muszą zostać oszacowane, zanim Flash będzie mógł określić ich wartość. Wyrażenie przypomina wzór matematyczny, np. a2 + b2. Wartość wyrażenia musi zostać obliczona, zanim nastąpi przypisanie jej do zmiennej (rys. 9.6). Z drugiej strony, łańcuch znakowy jest traktowany przez Flasha po prostu jako grupa znaków. W tym przypadku wzór a2 + b2 jest tylko i wyłącznie sekwencją siedmiu znaków (przy wyliczeniu odstępów). Kiedy deklarujesz zmienną znakową, musisz pozostawić pole Expression niezaznaczone. W przypadku każdego innego typu danych pole to powinno być zaznaczane. Z kolei zaznaczenie pola Expression, widniejącego obok pola Variable, zmienia całe wyrażenie w oknie skryptu, nadając mu formę set (variable, value). Ta składnia umożliwia jednoczesne wprowadzenie wyrażenia zmiennej i jej wartości. Na przykład, wybierając dla zmiennych nazwy player1, player2 i player3, możesz je szybko utworzyć za pomocą wyrażenia "player" + counter, gdzie counter jest również zmienną, przechowującą liczbę (rys. 9.7). Ten rodzaj wyrażenia zostanie omówiony w dalszej części rozdziału.

 

...

Zgłoś jeśli naruszono regulamin