r03-04(1), Informacje dot. kompa


Część 2.

Zrozumieć ActionScript

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic

Części składowe języka HTML


0x08 graphic
ActionScript jest nazwą wewnętrznego języka skryptowego Flasha, używanego do projektowania skryptów przypisywanych później do klipów filmowych, przycisków i ujęć kluczowych. Język ten można wykorzystać do tworzenia złożonych narzędzi do nawigacji w projektach filmowych Flasha, przycisków reagujących na wskaźnik myszy, a nawet do tworzenia gier zręcznościowych czy efektownych witryn reklamowych o dynamicznie aktualizowanej zawartości. W tym rozdziale nauczysz się posługiwać językiem ActionScript do tworzenia interaktywnych funkcji na potrzeby twoich projektów. Przypomina to trochę naukę gramatyki języka obcego: najpierw poznajesz zasady łączenia rzeczowników z czasownikami oraz dodawania przymiotników i przyimków; potem rozszerzasz swoje umiejętności komunikacji i posługiwania się mową, przyswajając kolejne zasób leksykalny. Rozdział niniejszy pomoże ci opanować podstawy ActionScript i wyposaży w znajomość słownictwa opisującego akcje Flasha.

Jeśli posługiwałeś się już językiem JavaScript, to z pewnością zauważysz pewne podobieństwa pomiędzy tymi dwoma językami. W zasadzie ActionScript bazuje na języku JavaScript, który jest popularnym, zorientowanym obiektowo językiem programowania, używanym do projektowania interaktywnych witryn internetowych. Jednak skrypty JavaScript z założenia kontrolują pracę przeglądarek, natomiast ActionScript wpływa na zachowanie poszczególnych elementów filmu Flasha, przez co istnieje kilka różnic pomiędzy tymi językami. Jednak podstawowa składnia, sposób zarządzania obiektami i funkcjami w obu przypadkach pozostają jednakowe.

Nawet jeśli nigdy jeszcze nie zetknąłeś się z językiem JavaScript, śledząc ten rozdział, przekonasz się, że programowanie we Flashu jest łatwe. Zapoznasz się z logiką obiektów, a także dowiesz się, jak paleta akcji pomaga zautomatyzować proces programowania, dając ci większą elastyczność w tworzeniu coraz bardziej zaawansowanych skryptów.

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
Obiekty i klasy

Sercem języka ActionScript są obiekty oraz klasy. Obiektami mogą być dowolne typy danych, np. dźwięk, klip filmowy, łańcuch znaków lub wartości liczbowe, które tworzysz we Flashu i wykorzystujesz do kontrolowania filmu. Dla przykładu, obiekt daty jest używany do podawania informacji o czasie i dacie, a obiekt tablicowy służy do manipulowania danymi zgromadzonymi w określonym porządku. Wszystkie tworzone przez ciebie obiekty należą do większej grupy zbiorczej, zwanej klasą. We Flashu zaimplementowano szereg klas możliwych do wykorzystania w twoich filmach. Owe predefiniowane klasy także określane są mianem obiektów, jednak mają nazwy pisane wielką literą. Na przykład obiekt Kolor jest klasą, na podstawie której tworzy się różnokolorowe obiekty. Nauka programowania w ActionScript sprowadza się do zrozumienia działania poszczególnych obiektów oraz ich klas, a następnie wykorzystania ich do wzajemnej interakcji oraz interakcji z użytkownikiem.

W realnym świecie znane nam są takie obiekty, jak krowa, drzewo czy osoba (rys. 3.1). Obiekty we Flashu mogą przyjmować różne postaci - od widzialnych przedmiotów, w rodzaju wirującej kuli, do bardziej abstrakcyjnych koncepcji, np. daty, fragmentów danych lub odczytywania informacji wprowadzanych z klawiatury. Niezależnie jednak od ich materialności czy abstrakcyjności, obiekty Flasha są wszechstronne, ponieważ kiedy już raz je utworzysz, można używać ich w różnych kontekstach. Zanim jednak będziesz mógł użyć obiektów, musisz nauczyć się je identyfikować, a robi się to, po prostu nazywając je - jak w realnym świecie. Załóżmy więc, że masz przed sobą troje ludzi: Adama, Betty i Zeke'a. Wszyscy oni stanowią obiekty, które odróżniają imiona. Wszyscy też należą do jednej większej grupy znanej jako ludzie. Można powiedzieć, że Adam, Betty i Zeke są klonami klasy ludzi (rys. 3.2). W języku ActionScript, klony oraz obiekty są synonimami i nazwy te są używane w tej książce zamiennie.

0x01 graphic

Rys. 3.1. Obiektami w realnym świecie mogą być np. krowa, drzewo czy osoba

0x01 graphic

Rys. 3.2. Adam, Betty i Zeke to trzy obiekty klasy ludzi. Oczywiście we Flashu nie ma takiej klasy (co nie znaczy, że nie można jej stworzyć), jednak ta analogia pozwala pojąć znaczenie obiektów

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic

0x01 graphic

Rys. 3.3. Adam, Betty i Zeke są obiektami ludzkimi z różnymi właściwościami. Właściwości odróżniają obiekty tej samej klasy

Wskazówka

  • Pomyśl o obiektach jak o rzeczownikach, o właściwościach jak o przymiotnikach i o metodach jak o czasownikach - to ułatwia sprawę. Właściwości opisują obiekty, podczas gdy metody to akcje, które obiekty wykonują.

Metody i właściwości

Każdy obiekt w danej klasie (np. Zeke z klasy ludzie) wyróżnia spośród innych obiektów w tej klasie nie tylko jego nazwa. Każdy człowiek jest inny pod względem wielu cech, które czynią go niepowtarzalnym, np. wzrostu, wagi, płci czy koloru włosów. W obiektowo zorientowanych językach programowania mówimy, że obiekty i klasy mają właściwości. Wzrost, waga płeć i kolor włosów, są właściwościami klasy ludzi (rys. 3.3). We Flashu, każda z predefiniowanych klas posiada swój zestaw właściwości pozwalających zindywidualizować poszczególne obiekty. I tak klasa String ma tylko jedną właściwość, nazywaną lenght, która określa ilość znaków zawartych w danym obiekcie, czyli łańcuchu znaków. Klasa MovieClip (klip filmowy) natomiast ma wiele właściwości, np. _height (wysokość), _width (szerokość) i _rotation (kąt obrotu), które wskazują na wymiary i orientację konkretnego obiektu-klipu filmowego. Definiując i zmieniając właściwości obiektów, kontrolujesz ich postać .

Ponadto ludzie mogą wykonywać różne czynności. Zeke może biegać, spać lub rozmawiać. W żargonie obiektowym mówimy, że obiekt posiada metody, które na niego wpływają . Każda z predefiniowanych klas ma swój własny zestaw metod. Przykładowo, klasa Sound (dźwięk) posiada metodę setVolume, pozwalającą ustalić poziom dźwięku, a klasa Date (data) metodę getDay, która zwraca dzień tygodnia. Kiedy używamy metody obiektu, mówimy, że ta metoda została wywołana, ewentualnie obiekt wywołuje metodę.

Zrozumienie związków pomiędzy obiektami, klasami, właściwościami i metodami jest ważne. Definiowanie obiektów, tak aby metody i właściwości jednego oddziaływały na metody i właściwości drugiego, jest sposobem, w jaki we Flashu tworzymy interaktywne elementy . Kluczem do rozwijania zasobu słownictwa języka ActionScript jest poznanie właściwości i metod poszczególnych klas.

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
Pisanie według reguł składni

Podobnie jak w przypadku każdego innego języka obcego, jeśli chcesz układać słowa w zdania, musisz poznać reguły gramatyki. W języku ActionScript też istnieją określone konwencje, pozwalające układać obiekty, właściwości i metody w wyrażenia, a te z kolei w funkcje i skrypty. Poszczególne obiekty, właściwości i metody łączy się za pomocą kropek, opisując w ten sposób konkretny obiekt lub proces. Oto przykład:

Zeke.weight = 188;

Betty.weight = 135;

Pierwsze wyrażenie przyporządkowuje wartość 188 wadze (weight) Zeke'a. Drugie wyrażenie przyporządkowuje wartość 135 wadze Betty. Kropka oddziela nazwę obiektu od właściwości (weight) (rys. 3.4).

Betty.shirt.color = gray;

To wyrażenie wskazuje, że obiekt Betty jest połączony z obiektem shirt (koszula). Z kolei obiekt shirt posiada właściwość color (barwa), której przyporządkowano wartość gray (szary). Zwróć uwagę, że w składni ActionScript używa się wielu kropek do ustalania hierarchii obiektów. Kiedy mamy do czynienia z kilkoma obiektami połączonymi w taki sposób, zwykle łatwiej jest czytać wyrażenie od tyłu. Można więc zinterpretować to tak: „Szary jest kolorem bluzki Betty”.

Zeke.run ();

To wyrażenie oznacza, że obiekt Zeke wywołuje metodę run. Nawiasy stojące za słowem run wskazują, że jest to metoda, a nie właściwość. Możesz nazywać taką konstrukcję następująco: rzeczownik-kropka-czasownik (rys. 3.5). Metody często będą posiadały argumenty, podawane w nawiasach i decydujące o sposobie wykonania metody. Na przykład:

Zeke.run (fast);

Adam.run (slow);

0x01 graphic

Rys. 3.4. Hipotetyczna właściwość weight opisuje Betty i Zeke'a. We Flashu, właściwości obiektów mogą być ustalane i modyfikowane za pomocą języka ActionScript

0x01 graphic

Rys. 3.5. Zastosowanie kropki powoduje, że obiekty wywołują metody. Tak jak hipotetyczna metoda run mogłaby sprawić, że obiekt Adam zacznie biegać, tak prawdziwa metoda Flasha hide(), zastosowana do obiektu Mouse, powoduje, że wskaźnik myszy staje się niewidoczny

0x08 graphic

W obu wyrażeniach obiekty Zeke i Adam wywołują metodę run (bieg), jednak w każdym przypadku metoda posiada inny argument, co oznacza, że czynność biegania będzie wyglądać w różny sposób: Zeke będzie biegł szybko, podczas gdy Adam - powoli.

Każda metoda będzie korzystać z własnego zestawu argumentów. Rozważ na przykład podstawową akcję Flasha gotoAndPlay("Scene 1",20) (gotoAndPlay jest metodą należącą do klasy MovieClip jak też niezależną akcją Flasha). Argumenty w nawiasach (”Scene1”,20) odnoszą się do konkretnej sceny i numeru klatki, tak więc odtwarzacz przeskoczy do sceny 1 i klatki 20, a następnie rozpocznie odtwarzanie filmu.

Wskazówka

  • Kropka zastępuje ukośnik z poprzednich wersji Flasha. Chociaż można wciąż używać ukośnika, lepiej posługiwać się kropką, ponieważ jest bardziej kompatybilna z nowymi typami akcji.

0x08 graphic
Więcej o interpunkcji

Zastosowanie kropki umożliwia tworzenie zależności pomiędzy obiektami, właściwościami i metodami. Dodatkowe znaki interpunkcyjne pozwalają na więcej kombinacji z pojedynczymi wyrażeniami.

Średnik

Średnika używa się do zaznaczenia końca jednego wyrażenia i początku następnego. Znak ten spełnia podobną funkcję, co kropka w zdaniu: oddziela dwie idee, jedną od drugiej. Oto przykład:

stopAllSounds ();

play ();

Średniki oddzielają wyrażenia, tak więc najpierw wyłączany jest dźwięk, a potem rozpoczyna się odtwarzanie filmu. Każdy skrypt jest wykonywany w kolejności od góry do dołu, podobnie jak zestaw instrukcji czy przepis kuchenny.

Wskazówka

  • Dla Flasha zrozumiałe są poszczególne wyrażenia, nawet jeśli nie używasz średników do ich oddzielania. Dobrym zwyczajem jest jednak stosowanie tych znaków w kodzie skryptu.

Klamry

Klamry są kolejnym znakiem interpunkcyjnym często stosowanym w kodzie ActionScript. Służą do grupowania poszczególnych skryptów w bloki. Na przykład, kiedy przyporządkowujesz akcje przyciskom, akcje te są zapisywane w klamrach wyrażenia on (release).

on (release) {

stopAllSounds ();

play ();

}

W powyższym przykładzie obie akcje, stopAllSounds oraz play, są wykonywane po zwolnieniu klawisza myszki. Zwróć uwagę na sposób rozmieszczenia klamer w kolejnych liniach, ułatwiających odczytanie powiązanych ze sobą wyrażeń języka ActionScript. Ważne jest, aby po klamrze zamykającej blok akcji on (jak również po onClipEvent) nie stawiać średnika, ponieważ Flash zinterpretuje to jako błąd.

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic

0x01 graphic

Rys. 3.6. Ikonowe menu w prawym dolnym rogu dokumentu Flasha otwiera paletę akcji dzięki przyciskowi Show Actions

0x01 graphic

Rys. 3.7. Paleta akcji w trybie Normal

Paleta akcji

Paleta akcji to okno dialogowe Flasha, dające dostęp do predefiniowanych klas i obiektów ActionScript, oraz ułatwiające pisanie własnych skryptów. Akcje tworzy się, usuwa i edytuje w jednym z dwóch trybów, Normal lub Expert, w zależności od stopnia zaawansowania. Paleta akcji pozwala na pewną automatyzację procesu pisania skryptów, np. wstawiając automatycznie znaki interpunkcyjne w rodzaju średników czy klamer.

We Flashu nazwa palety akcji jest widoczna w rzeczywistości jako Object Actions lub Frame Actions, w zależności od rodzaju elementu, który jest aktualnie zaznaczony. Jednak zawartość palety nie zmienia się, tak więc w tekście odwołujemy się do niego zawsze jako do palety akcji.

W celu wywołania palety akcji:

  1. Wybierz Windows/Actions.

lub

W ikonowym menu w prawym dolnym rogu okna kliknij przycisk Show Actions (rys. 3.6). W zależności od aktualnego zaznaczenia, pojawi się paleta Frame Actions lub Object Actions.

lub

Kliknij podwójnie ujęcie kluczowe, lub przytrzymując wciśnięty klawisz Alt, kliknij podwójnie klon na scenie. W efekcie pojawi się paleta Frame Actions lub Object Actions, pozwalając na przypisanie ujęciu kluczowemu lub klonowi odpowiedniego skryptu (rys. 3.7).

0x08 graphic
Tryb Normal

Tryb Normal palety akcji udostępnia trzy sekcje okna i kilka sposobów wpisywania wyrażeń języka ActionScript.

Tryb Expert

Ten tryb przeznaczony jest dla doświadczonych programistów, którzy nie potrzebują pomocy udostępnianej w trybie Normal. Tryb Expert umożliwia swobodne wpisywanie kodu, podobnie jak wpisywanie tekstu w edytorze (rys. 3.8).

Wskazówki

  • Każdy skrypt zachowuje swój własny tryb, co oznacza, że jeśli np. utworzysz jedną akcję danego ujęcia kluczowego w trybie Normal, a inną akcję dla kolejnego ujęcia kluczowego w trybie Expert, paleta akcji będzie zmieniać tryb pracy w zależności od tego, które ujęcie kluczowe zostanie zaznaczone.

  • Bądź ostrożny, przełączając tryby podczas pisania skryptów. Zmiana trybu z Expert na Normal wyzwala proces ponownego formatowania kodu skryptu, który wprowadza dodatkowe odstępy i obszary pustej przestrzeni. Program nie pozwoli ci na przejście z trybu Expert do trybu Normal dopóki wpisany kod nie będzie wolny od błędów.

0x01 graphic

Rys. 3.8. Paleta akcji w trybie Expert

0x08 graphic
0x01 graphic

Rys. 3.9. Menu opcji na palecie akcji umożliwia wybór pomiędzy trybami Normal i Expert

0x01 graphic

Rys. 3.10. W zakładce General okna dialogowego Preferences można zmienić domyślny tryb pracy palety akcji

W celu wybrania trybu
pomiędzy Normal i Expert:

  1. Mając otwartą paletę akcji, kliknij ikonę zwróconego w prawo trójkąta w prawym górnym rogu palety. Otworzy się menu rozwijane opcji palety (rys. 3.9).

  1. Z menu wybierz tryb Normal Mode
    (Ctrl+N) lub Expert Mode (Ctrl+E).

Wskazówka

  • Paletę akcji można ustawić tak, żeby automatycznie otwierała się w określonym trybie. Z menu Edit wybierz Preferences. W zakładce General okna dialogowego Preferences, z listy rozwijanej Mode wybierz odpowiednio Normal Mode lub Expert Mode (rys. 3.10).

Tabela 3.1. Różnice pomiędzy trybami Expert Mode i Normal Mode

Cecha

Tryb Normal Mode

Tryb Expert Mode

Bezpośrednie wprowadzanie tekstu

Nie

Tak

Blok określania parametrów

Tak

Nie

Kategoria Basic Actions na liście narzędzi

Tak

Nie

Przycisk „minus”

Tak

Nieaktywny; zaznacz wyrażenie i naciśnij klawisz Delete

Przyciski „w górę” i „w dół”

Tak

Nieaktywne; do zmiany rozmieszczenia wyrażeń użyj poleceń Copy, Cut i Paste

0x08 graphic
W celu dodania akcji
w trybie Normal Mode:

  1. Zaznacz klon lub ujęcie kluczowe, w którym chcesz wprowadzić akcję. Na liście narzędzi kliknij pozycję Basic Actions, aby ją rozwinąć.

  1. Kliknij podwójnie wybraną akcję, a pojawi się ona w oknie skryptu (rys. 3.11).

lub

  1. Zaznacz klon lub ujęcie kluczowe, w którym chcesz wprowadzić akcję. Na liście narzędzi kliknij pozycję Basic Actions, aby ją rozwinąć.

  1. Zaznacz akcję i przeciągnij ją do okna skryptu lub jednego z wolnych pól bloku edycji parametrów (rys. 3.12). Wybrana akcja pojawi się na liście akcji lub w bloku określania parametrów.

lub

  1. Zaznacz klon lub ujęcie kluczowe, w którym chcesz wprowadzić akcję. Kliknij przycisk „plus” nad listą narzędzi i wybierz akcję z grupy rozwijanych menu (rys. 3.13). Akcja pojawi się w oknie skryptu.

lub

  1. Zaznacz klon lub ujęcie kluczowe, w którym chcesz wprowadzić akcję. Posłuż się skrótami klawiaturowymi wymienionymi w menu rozwijanym przycisku „plus”, naciskając najpierw klawisz Esc.

  1. Wpisz dwuliterowy skrót odpowiadający wybranej akcji. Akcja ta pojawi się w oknie skryptu. Pełną listę skrótów poszczególnych akcji znajdziesz w dodatku C.

0x01 graphic

Rys. 3.11. Dodaj akcję, wybierając wyrażenie z listy narzędzi

0x01 graphic

Rys. 3.12. Dodaj akcję, przeciągając wyrażenie do listy akcji po prawej. Wygląd wskaźnika zmienia się na chwilę, pokazując miejsce, w którym zamierzasz upuścić akcję

0x01 graphic

Rys. 3.13. Dodaj akcję, wybierając ją z menu rozwijanego przycisku „plus”

0x08 graphic
0x01 graphic

Rys. 3.14. Przesuń wyrażenie stopAllSounds () za pomocą przycisków-strzałek (u góry) - lub przeciągając je w nowe miejsce (u dołu). Gruba pozioma linia wskazuje miejsce, w którym znajdzie się wyrażenie po upuszczeniu

0x01 graphic

Rys. 3.15. Blok edycji parametrów pozwala na zmianę parametrów zaznaczonej akcji. Akcja Go To posiada dwa pola parametrów, menu rozwijane oraz pole wyboru, które wszystkie razem wpływają na sposób działania akcji. Wprowadzenie wartości 10 w polu Frame i zaznaczenie pola Go to and Play zmieni wyrażenie na liście akcji i spowoduje przeniesienie punktu rozpoczęcia odtwarzania do klatki 10

W celu edycji akcji
w trybie Normal Mode:

  1. Zaznacz akcję i zmień jej położenie na liście akcji za pomocą przycisków-strzałek „w górę” i „w dół” - lub po prostu przeciągając ją w nowe miejsce (rys. 3.14).

  1. Zaznacz akcję i użyj przycisku „minus” lub naciśnij klawisz Delete w celu usunięcia jej z listy akcji.

  2. Wprowadź odpowiednie wartości w pustych polach, polach wyboru i menu rozwijanych bloku określania parametrów, aby zmienić argumenty dla zaznaczonej akcji. Lista akcji wyświetla akcje z ustalonymi w ten sposób parametrami (rys. 3.15).

Wskazówki

  • Akcje można przeciągać bezpośrednio do pól parametrów lub na listę akcji.

  • Tworząc skrypt, zawsze możesz posługiwać się znanymi poleceniami edycji, jak Copy, Cut i Paste (Kopiuj, Wytnij, Wklej). Jeśli jednak wklejasz skopiowany skrypt, nowy pojawi się nie w miejscu zaznaczenia, jak w edytorach tekstu, lecz zaraz za nim.

  • Przytrzymanie klawisza Shift podczas zaznaczania umożliwia selekcję więcej niż jednej akcji do skopiowania (Copy) lub wycięcia (Cut).

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
W celu
zmodyfikowania sposobu wyświetlania
palety akcji:

  1. Jeśli chcesz zmienić rozmiar poszczególnych okienek palety, przeciągnij pionowy pasek podziału lub kliknij go podwójnie, ewentualnie kliknij przycisk strzałki, rozdzielający listę narzędzi od okna skryptu (rys. 3.16).

  1. Kliknięcie ikony trójkąta w prawym dolnym rogu palety akcji zwija lub rozciąga blok edycji parametrów (rys. 3.17).

0x01 graphic

Rys. 3.16. Zmiana rozmiaru okien palety akcji przez przeciągnięcie (u góry) lub kliknięcie pionowego paska podziału. Okno skryptu może zostać rozszerzone (w środku) lub powiększone do szerokości palety (u dołu)

0x01 graphic

Rys. 3.17. Paleta akcji z widocznym blokiem edycji parametrów

Kategorie akcji

0x08 graphic
Wiemy już, że obiekty, metody i właściwości są podstawowymi komponentami języka ActionScript. Jakie jednak zachodzą relacje pomiędzy nimi a kategoriami akcji, wypełniającymi okno narzędzi palety akcji? Czym charakteryzują się poszczególne kategorie? W trybie Normal Mode akcje są zorganizowane hierarchicznie, w sześciu kategoriach: Basic Actions (podstawowe akcje), Actions (akcje), Operators (operatory), Functions (funkcje), Properties (właściwości) i Objects (obiekty). Niektóre z nich dzielą się na podkategorie akcji. Niżej znajdziesz krótką charakterystykę poszczególnych kategorii:

  • Basic Actions to zbiór podstawowych akcji, z reguły odpowiedzialnych za nawigację, np. play(). W kategorii tej znajdziesz akcje przydatne do odtwarzania różnych klatek filmu, wczytywania filmów z dowolnego miejsca w sieci Internet czy chociażby akcję ładowania dokumentów HTML do przeglądarki internetowej.

  • Zbiór Actions zawiera - oprócz elementów poprzedniej kategorii - także bardziej złożone akcje, służące do kontrolowania filmu. W skład tej kategorii wchodzą akcje potrzebne do określania zmiennych, wyrażeń (formuł łączących zmienne) i wyrażeń warunkowych. Znajdziesz tu również akcje działające z klipami filmowymi, jak startDrag - akcję powodującą „przyczepienie” klipu filmowego do wskaźnika myszki, akcje warunkowe takie jak if, ifFrameLoaded oraz pętle (takie jak for, do while itp.). Generalnie, z akcji tej kategorii często korzysta się przy ustawianiu i modyfikowaniu obiektów, a także porównywaniu i wywoływaniu ich właściwości i metod.

  • Operators jest kategorią stanowiącą zbiór operatorów umożliwiających tworzenie złożonych wyrażeń z wyrażeń prostszych Są tu zarówno powszechne operatory matematyczne, w rodzaju dodawania (+) i odejmowania (-), jak i operatory do budowania złożonych wyrażeń z łańcuchów tekstowych .

  • Functions to zbiór akcji, np. hitTest (akcja wykrywa kolizję dwóch klipów filmowych), które zwracają wartość, opartą na dostarczonych wcześniej danych (przykładem może być funkcja obliczająca kwadrat swojego argumentu. Jako argument jest podawana wartość liczbowa, natomiast wartość zwracana przez funkcję jest kwadratem tej wielkości). W takiej postaci funkcje stanowią część większych wyrażeń. Nazwa funkcji - w momencie obliczania przez ActionScript wyrażenia - zostaje zastąpiona przez wartość zwracaną.

  • Properties to zbiór właściwości klipu filmowego, które można modyfikować lub oceniać, np. _rotation. Można tutaj znaleźć właściwości lokalne, odnoszące się do konkretnego obiektu (takie jak _rotation), oraz właściwości globalne, mające wpływ na cały film (np. _quality).

  • Objects jest zbiorem obiektów wraz z ich metodami i właściwościami, np. selection.getFocus().

0x08 graphic
Używanie obiektów

Skoro wiesz już, czym są obiekty, a także jak posługiwać się paletą akcji, zaczniemy pisać skrypt z użyciem właśnie obiektów, jak również wywoływania metod lub deklarowania i przyporządkowywania właściwości.

Flash udostępnia predefiniowane klasy, nazywane „obiektami”. Tak naprawdę są więc dwie definicje obiektów. Array, Boolean, Color i wszystkie inne obiekty wyświetlane w kategorii Objects na liście narzędzi są określane mianem obiektów, ponieważ stanowią predefiniowane klasy. Obiektami w ogólnym znaczeniu są też ciągle pojedyncze klony danej klasy. Zatem obiekt Array powinien być właściwie nazywany klasą Array, a z niej samej można utworzyć obiekt. W tekście odwołujemy się do pojęcia predefiniowanych klas, pisząc o obiektach i podając ich nazwy pisane wielką literą, jako że tak właśnie zostały uszeregowane na liście narzędzi palety akcji. Klasy te posiadają metody oraz właściwości, pozwalające kontrolować różne aspekty filmów Flasha, np. klipy filmowe, dźwięk, dane, czas czy funkcje matematyczne. Możesz także tworzyć własne klasy poprzez łączenie kilku predefiniowanych klas i akcji z funkcjami (zobacz - rozdział 11. „Sterowanie przepływem informacji”).

Predefiniowane klasy

Predefiniowane klasy znajdują się w kategorii Objects palety akcji (rys. 3.18). Żeby móc posłużyć się klasą, najpierw musisz stworzyć jej klon, nadając mu nazwę. Robi się to podobnie, jak w przypadku tworzenia klonu symbolu. Musisz utworzyć klon klasy, jeśli chcesz ją wykorzystać w skrypcie, a robi się to przez nadanie jej nazwy. Do nadania klonowi klasy unikalnej nazwy używa się akcji set variable.

Adam = new Human ();

myColor = new Color ();

0x01 graphic

Rys. 3.18. Predefiniowane klasy Flasha służą do kontrolowania różnych aspektów danych

0x08 graphic

Powyższe wyrażenia służą do utworzenia nowych obiektów, którymi później można manipulować. Operator new umieszczony przed nazwą klasy, jak widać w przykładzie powyżej, jest nazywany funkcją konstruktora (constructor function). Funkcja new stanowi specjalny rodzaj funkcji, używany do tworzenia nowych klonów klas.

Kolejny krok polega na wywołaniu metody obiektu, ewentualnie zadeklarowaniu i przyporządkowaniu nowych właściwości. Metodę możesz wywołać wybierając akcję evaluate i wpisując wyrażenie z kropką:

myColor.setRGB(0x00CC33)

Powyższe wyrażenie wywołuje metodę setRGB, która zmienia kolor skojarzony z obiektem myColor.

Wskazówka

  • Kilka obiektów Flasha, jak obiekty Key, Math i Mouse, nie posiadają funkcji konstruktora. Oznacza to, że nie możemy utworzyć ich klonu. Do ich metod i właściwości możesz odwoływać się, podając nazwę obiektu i po kropce nazwę właściwości lub metody, np.:

Mouse.hide();

Math.sin(argument);

Żeby dowiedzieć się, czy dany obiekt potrzebuje funkcji konstruktora, wystarczy spojrzeć do kategorii Objects na liście narzędzi. Te, które jej nie posiadają, nie wyświetlą jej wśród swoich metod i właściwości.

0x08 graphic
Na początek zobaczysz, jak używać akcji set variable, new i evaluate do konstruowania i posługiwania się nowymi obiektami. W kolejnych rozdziałach zaznajomisz się z konkretnymi typami obiektów, właściwości i metod, a także dowiesz się, jak używać ich do kontrolowania twoich filmów Flasha.

Poniższe ćwiczenia demonstrują sposób tworzenia klonu obiektu Date i wprowadzania zmiennej podającej aktualną datę.

W celu utworzenia obiektu:

  1. Wyselekcjonuj ujęcie kluczowe.

  1. Otwórz paletę akcji w trybie Normal Mode.

Z listy narzędzi lub menu przycisku „plus” wybierz Actions/set variable. W oknie skryptu pojawi się nowe wyrażenie, a w bloku edycji parametrów ujrzysz puste pola (rys. 3.19).

  1. W polu Variable wpisz wybraną przez ciebie nazwę obiektu (rys. 3.20).

  2. Umieść wskaźnik myszy w polu Value. Wybierz Objects/Date/new Date lub przeciągnij pozycję new Date do pola Value. W polu Value pojawi się funkcja konstruktora new Date (rys. 3.21).

  3. Usuń podświetlone argumenty znajdujące się w nawiasach przy funkcji konstruktora new Date. Zaznacz pole wyboru Expression, widoczne obok pola Value (rys. 3.22). W oknie skryptu zobaczysz, że zniknął cudzysłów widoczny wcześniej wokół funkcji konstruktora new Date. Oznacza to, że Flash będzie traktował zawartość pola Value jako wyrażenie, a nie jako łańcuch znaków (czyli tekst). Okno skryptu pokazuje całe wyrażenie, tworzące klon obiektu Date o nazwie myDate. Masz więc już klon twojego nowego obiektu, który jest gotowy do użycia (rys. 3.23). Wywołanie funkcji konstruktora new Date bez argumentów powoduje, że nowo utworzony obiekt daty będzie przechowywał aktualny czas, tj. czas odczytany z zegara systemowego.

0x01 graphic

Rys. 3.19. Akcja set variable wymaga zadeklarowania zmiennej i podania wartości

0x01 graphic

Rys. 3.20. Wpisz myDate jako nazwę obiektu

0x01 graphic

Rys. 3.21. Funkcja konstruktora new Date posiada następujące argumenty: year (rok), month (miesiąc), date (data), hour (godzina), min (minuta), sec (sekunda), ms (milisekunda)

0x01 graphic

Rys. 3.22. Funkcja konstruktora new Date, bez dodatkowych argumentów, nie przypisuje określonych właściwości obiektowi myDate

0x01 graphic

Rys. 3.23. Pełne wyrażenie tworzy z obiektu typu Date nowy obiekt, nazwany myDate

0x08 graphic
0x01 graphic

Rys. 3.24. Wprowadź mydisplay jako nazwę zmiennej i nie zaznaczaj pola Expression

0x01 graphic

Rys. 3.25. W zmiennej mydisplay przechowywana jest informacja, odczytywana przez metodę getDate z obiektu myDate

W celu wywołania metody obiektu:

  1. Kontynuujemy poprzednie ćwiczenie. Na palecie akcji wybierz Actions/set variable. Poniżej pierwszego wyrażenia pojawi się następne.

  1. W polu Variable wpisz nazwę zmiennej (rys. 3.24).

  2. W polu Value wpisz nazwę obiektu Date, który utworzyłeś w poprzednim ćwiczeniu (czyli myDate).

  3. Nie przesuwając wskaźnika myszy znad pola Value, wybierz Objects/Date/getDate. Zaznacz pole wyboru Expression (rys. 3.25). W polu Value, zaraz za obiektem myDate pojawi się metoda getDate.

Pole wyboru Expression

Zaznaczenie pola Expression powoduje usunięcie cudzysłowów z pola Value (lub Variable) i tym samym zamianę tzw. łańcucha znakowego na wyrażenie. Łańcuch znakowy jest zawsze zamknięty w cudzysłowie i reprezentuje określony zbiór znaków - cyfr, liter lub symboli - inaczej można powiedzieć, że łańcuch znakowy to tekst. Natomiast wyrażenie jest wzorem (czy raczej formułą), który może zawierać zmienne, funkcje oraz cyfry, liczby i operatory. Zanim zostanie określone, co reprezentuje dane wyrażenie, Flash musi je najpierw zinterpretować, tj. podstawić za zmienne i funkcje odpowiednie wartości, a także wykonać na całości działania zgodne z logiką użytych operatorów. Na przykład, łańcuch znakowy ”3+2” stanowi tylko grupę trzech znaków, 3+2. Z drugiej strony, wyrażenie 3+2 oznacza 5. Więcej na temat wyrażeń i zmiennych dowiesz się z części V, „Przetwarzanie informacji”.

0x08 graphic
Kompletne wyrażenie przypisuje zmiennej mydisplay aktualny dzień miesiąca (jest to wartość liczbowa od 1 do, w zależności od miesiąca i roku, 28, 29, 30 lub 31). Informacja podawana przez tę metodę nazywa się wartością zwracaną.

  1. Wybierz narzędzie tekstowe (Text Tool) i przeciągnij w obrębie sceny, aby utworzyć pustą selekcję. Na palecie Text Options, z menu rozwijanego wybierz Dynamic Text, a w polu Variable wpisz nazwę zmiennej podającej aktualną datę (mydisplay) (rys. 3.26).

Pole dynamicznego tekstu wyświetla wartość zmiennej w czasie odtwarzania filmu. Więcej o dynamicznym tekście dowiesz się z rozdziału 10.

  • Przetestuj swój film, wybierając Control/Test movie. Flash tworzy klon obiektu Date, a następnie obiekt ten wywołuje metodę getDate. Wartość zwracana (dzień miesiąca) jest podstawiana za zmienną o nazwie mydisplay. Wartość tej zmiennej widać w polu tekstowym na scenie.

Wskazówka

  • W powyższym ćwiczeniu użyłeś akcji set variable, która przyporządkowuje zmiennej wartość (w tym przypadku wartość ta została zwrócona przez metodę obiektu typu Date). Było to niezbędne do zobaczenia efektów działania metody, ponieważ metoda zwracała wartość i należało w jakiś sposób ją odzyskać. Metody, które nie zwracają żadnej wartości, nie potrzebują, aby przypisywać im zmienną (jej przypisanie nie będzie miało żadnego efektu). Na przykład metoda start() obiektu Sound po prostu rozpoczyna odtwarzanie pliku muzycznego. W tym przypadku do wywołania metody możesz użyć akcji evaluate.

0x01 graphic

Rys. 3.26. Pole tekstowe po lewej zostało zamienione na pole dynamicznego tekstu (Dynamic Text) za pomocą zmiennej mydisplay

Symbole i klasy

Symbole nie są klasami. Nie są nawet obiektami. To prawda, że klip filmowy jest jednocześnie symbolem i obiektem, ale to jedyny wyjątek, i chyba też źródło całego zamieszania. Grafiki, przyciski, dźwięki, bitmapy i klipy wideo QuickTime - to wszystko symbole pojawiające się w bibliotece. Jednak nie są to obiekty ani klasy, a to dlatego, że nie posiadają metod i właściwości, które można kontrolować za pomocą języka ActionScript. Tymczasem przyciski wykonują określone działania nie dlatego, że posiadają metody, ale dlatego, że ty przyporządkowujesz konkretne skrypty ich klonom.

Istnieje jednak pewna analogia pomiędzy klasami i symbolami. Symbole stanowią zawartość biblioteki (utworzoną lub zaimportowaną), którą można wielokrotnie wykorzystywać. W swoich filmach używasz jedynie klonów lub kopii poszczególnych symboli. W przypadku klas, jak mogłeś się przekonać, też używa się tylko klonów, tworzonych na ich podstawie na potrzeby projektu.

0x08 graphic
0x01 graphic

Rys. 3.27. Komentarze towarzyszące kolejnym fragmentom skryptu pomagają uwypuklić ich znaczenie

0x01 graphic

Rys. 3.28. Podwójny ukośnik sygnalizuje wprowadzanie komentarza w polu definiowania etykiety ujęcia (Label)

  • Ukośników używa się także do sygnalizowania komentarzy wpisywanych w oknie palety Frame. Kiedy więc zmodyfikujesz ujęcie, wpisz odpowiedni tekst, zaczynając linię od ukośników (//), co zasygnalizuje programowi, że linia ta zawiera komentarz, a nie nazwę ujęcia (rys. 3.28).

Stosowanie komentarzy

Podczas tworzenia złożonych skryptów powinieneś pamiętać o dołączaniu objaśnień (komentarzy), które pozwolą tobie i współtwórcom projektu pamiętać o zadaniach poszczególnych fragmentów kodu. Komentarze pomagają zachować porządek w czasie prac nad poszczególnymi częściami skryptu (rys. 3.27).

W celu dołączenia komentarza:

  1. Na palecie akcji wybierz Actions/comment. W polu Comment, w bloku edycji parametrów, wprowadź tekst komentarza.

  1. Tylko w trybie Expert Mode, w oknie skryptu wpisz dwa ukośniki (//). Wprowadź tekst komentarza za ukośnikami.

  2. Jeśli chcesz zawrzeć w komentarzu tekst, który ma kilka linijek, to otwierasz blok komentarza wpisując /* a zamykasz wpisując */:

//To jest komentarz, który mieści się w jednej linijce

/* To jest tekst komentarza, który nie mieści się w jednej linijce, więc trzeba użyć otwarcia i zamknięcia bloku komentarza */

Komentarze są zaznaczane innym niż reszta skryptu kolorem, więc łatwo je zlokalizować.

Wskazówki

  • Jeśli wprowadzasz długi komentarz, zapisz go w kilku kolejnych liniach lub skorzystaj z bloku komentarza. Dzięki temu nie będziesz musiał przewijać okna skryptu, żeby odnaleźć koniec tekstu.

  • Nie zwracaj uwagi na ilość komentarzy. Nie są one kompilowane wraz z resztą skryptu, więc nie mają wpływu na szybkość wykonywania programu. Co więcej, linie komentarzy nie są dołączane do eksportowanych plików SWF, więc nie powodują zwiększania ich rozmiarów.

Rozdział 3.

86

85

Posługiwanie się językiem ActionScript

3

Posługiwanie się
językiem ActionScript

Właściwości

Klasa ludzi

Klasa ludzi

Wzrost

Waga

Płeć

Kolor włosów

Przyciski „plus” i „minus” dodają lub usuwają ze skryptu akcje

Waga Betty = 135

Blok edycji parametrów

Lista narzędzi zawierająca akcje zorganizowane w kategorie

Używanie obiektów

Przycisk Show Actions

Używanie obiektów

Paleta akcji

Zwija blok edycji parametrów

Pionowy pasek podziału przy całkowicie rozciągniętym oknie skryptu

Pionowy pasek podziału

Przeciąganie pionowego paska podziału

Paleta akcji

Paleta akcji

Paleta akcji

Pisanie według reguł składni

Metody i właściwości

Posługiwanie się językiem ActionScript

Waga Zeke = 188

Menu rozwijane opcji

Przyciski strzałek pozwalają zmieniać układ wyrażeń

Okno skryptu

Ikona zmiany rozmiaru palety

Stosowanie komentarzy

Obiekty i klasy

Pisanie według reguł składni

Więcej o interpunkcji

Paleta akcji

Paleta akcji

Paleta akcji

Używanie obiektów

Używanie obiektów

Używanie obiektów

Adam

Betty

Zeke

Adam

Wzrost = 69

Waga = 140

Płeć = M

Kolor włosów = czarne

Betty

Wzrost = 68

Waga = 135

Płeć = K

Kolor włosów = czarne

Zeke

Wzrost = 66

Waga = 188

Płeć = M

Kolor włosów = brązowe

Adam.run ()

Mouse.hide ()



Wyszukiwarka

Podobne podstrony:
r12-04(1), Informacje dot. kompa
r03-05(1), Informacje dot. kompa
r10-04(1), Informacje dot. kompa
r07-04(1), Informacje dot. kompa
r03-02(1), Informacje dot. kompa
r03(1), Informacje dot. kompa
R04-05(2), Informacje dot. kompa
06(1), Informacje dot. kompa
r18-05(1), Informacje dot. kompa
r08-02(1), Informacje dot. kompa

więcej podobnych podstron