Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: [email protected]
PRZYK£ADOWY ROZDZIA£PRZYK£ADOWY ROZDZIA£
IDZ DOIDZ DO
ZAMÓW DRUKOWANY KATALOGZAMÓW DRUKOWANY KATALOG
KATALOG KSI¥¯EKKATALOG KSI¥¯EK
TWÓJ KOSZYKTWÓJ KOSZYK
CENNIK I INFORMACJECENNIK I INFORMACJE
ZAMÓW INFORMACJEO NOWO�CIACH
ZAMÓW INFORMACJEO NOWO�CIACH
ZAMÓW CENNIKZAMÓW CENNIK
CZYTELNIACZYTELNIA
FRAGMENTY KSI¥¯EK ONLINEFRAGMENTY KSI¥¯EK ONLINE
SPIS TRE�CISPIS TRE�CI
DODAJ DO KOSZYKADODAJ DO KOSZYKA
KATALOG ONLINEKATALOG ONLINE
Flash MX. Action Script.Leksykon kieszonkowy
Autor: Colin Moock
T³umaczenie: Pawe³ Janociñski
ISBN: 83-7361-190-8
Tytu³ orygina³u: ActionScript
for Flash MX Pocket Reference
Format: B5, stron: 172
ActionScript to jêzyk skryptowy pakietu Macromedia Flash s³u¿¹cy do tworzenia
praktycznie ka¿dego rodzaju tre�ci — od graficznego interfejsu u¿ytkownika i gier
do sekwencerów d�wiêku i animowanych wygaszaczy ekranu. Sk³adniowo jest niemal
identyczny z jêzykiem JavaScript, lecz jest dostosowany do obs³ugi elementów
stworzonych w programie Flash. ActionScript pozwala na tworzenie kodu
strukturalnego, obiektowego oraz stanowi¹cego dowolne po³¹czenie tych dwóch
rodzajów.
Ta niewielka ksi¹¿eczka bêdzie Twoj¹ podrêczn¹ pomoc¹, do której bêdziesz móg³ siê
odwo³aæ, gdy zapomnisz argumentów potrzebnej Ci w³a�nie funkcji lub gdy bêdziesz
potrzebowa³ przypomnieæ sobie sk³adnie rzadziej u¿ywanej konstrukcji ActionScriptu.
Znajdziesz w niej krótkie, zwiêz³e i zrozumia³e opisy wszystkich elementów
sk³adaj¹cych siê na ten jêzyk programowania. Jest to niezbêdna pozycja dla wszystkich
programistów Flasha.
Spis treści 3
Spis treści
Wstęp...............................................................................................5
Tworzenie kodu ActionScript .....................................................6Wyświetlanie informacji kontrolnych.....................................................7Zalecane sposoby organizacji kodu ........................................................8Poszukiwanie kodu ...................................................................................9
Używanie klipów filmowych ...................................................10Poziom głębokości klipu filmowego.....................................................13Odwoływanie się do klipów filmowych ..............................................14
Składnia języka ActionScript...................................................15Komentarze ...............................................................................................15Białe znaki .................................................................................................16Ograniczniki wyrażeń (średniki) ...........................................................16Rozpoznawanie wielkości znaków .......................................................16Identyfikatory ...........................................................................................17Słowa kluczowe........................................................................................17
Zmienne.........................................................................................18Zmienne listwy czasowej ........................................................................18Zmienne globalne.....................................................................................20Zmienne lokalne.......................................................................................21Podpowiedzi do kodu.............................................................................21
Typy danych.................................................................................21Zasady konwersji typów danych...........................................................23Jawna konwersja typów danych............................................................23Określanie typu danych i klasy .............................................................27Typ danych number ................................................................................28Typ danych string ....................................................................................28Typ danych boolean ................................................................................31Typy danych null i undefined ...............................................................32Typ danych object ....................................................................................32Typ danych function ...............................................................................32Typ danych movieclip.............................................................................33
4 Flash MX. ActionScript. Leksykon kieszonkowy
Tablice ...........................................................................................33
Operatory .....................................................................................35
Instrukcje warunkowe i pętle ...................................................37Instrukcje if-else if-else ............................................................................38Instrukcja switch ......................................................................................39Instrukcja while ........................................................................................40Instrukcja do-while ..................................................................................41Instrukcja for.............................................................................................41Instrukcja for-in ........................................................................................42Instrukcje break i continue .....................................................................43Pętle, odświeżanie ekranu i maksymalna liczba iteracji ....................44
Tworzenie i używanie funkcji ..................................................45
Obsługa zdarzeń..........................................................................48Właściwości obsługujące zdarzenia ......................................................48Odbiorcy zdarzeń.....................................................................................50Procedury obsługi onClipEvent() i on()................................................51
ActionScript zorientowany obiektowo...................................55
Praca z grafiką ............................................................................58
Praca z tekstem...........................................................................59
Komponenty i graficzny interfejs użytkownika ...................62
Współpraca z zewnętrznymi mediami i danymi ..................64Wczytywanie ilustracji i plików .swf....................................................65Wczytywanie plików dźwiękowych.....................................................65Wczytywanie stron internetowych........................................................67Wczytywanie zmiennych........................................................................67Wczytywanie kodu XML ........................................................................69Trwałe połączenia gniazd .......................................................................70Ograniczenia związane z zabezpieczeniami........................................70
Współpraca z przeglądarkami internetowymi......................72Komunikacja z JavaScriptem..................................................................74
Lokalizacja źródeł pomocy, przykładów i bibliotek kodu...74
Opis języka ActionScript ..........................................................76
Skorowidz...................................................................................165
Typy danych 21
Zmienne lokalne
Zmienne lokalne są tworzone za pomocą instrukcji ��� wewnątrzciała funkcji. Są one dostępne tylko w tej funkcji i są usuwanegdy funkcja kończy działanie. W przedstawionej poniżej funkcjizastosowano dwie zmienne lokalne, ���� i ����, służące do obli-czania bieżącej godziny:
��� � ������������������� ������� ���������������������������������� ����� ���! ����"� ����� ����#����������"�������$��������% ��"&�'��������� (������ ��"&����������"&
Podpowiedzi do kodu
W tabeli 3. przedstawiono przyrostki nazw zmiennych, którychstosowanie powoduje wyświetlanie w panelu Actions, po wpro-wadzeniu nazwy zmiennej, rozwijanej listy zawierającej możliwekontynuacje wyrażenia (nazywane podpowiedziami do kodu — ang.code hinting). Przykładowo, aby włączyć wyświetlanie podpo-wiedzi dla zmiennej oznaczającej pole tekstowe, można jej nadaćnazwę ���)��*�+�.
Typy danychJęzyk ActionScript posiada wbudowane następujące typy pro-ste: number, string, boolean, undefined i null oraz następujące typy
22 Flash MX. ActionScript. Leksykon kieszonkowy
Tabela 3. Przyrostki powodujące wyświetlanie podpowiedzi
Przyrostek Reprezentowany typ danych lub klasa
*�� ,����-'�)
* �� � .�� �
*��� /�����
*��� 0�����
*�+� 1�+�2��'�
*��� 1�+�2��� �
*� �� ! ��
*����� /����
*+�' 3,4
*+�'���5�� 3,4/��5��
*��'�� -�'��
*����� 6����
*�� 2-���50�+
*)� 27���0�����
*�� 28 ���0�����
*'� 24���0�+
*�� 2/���''0 �
*�� 2-����0�+
*�) 2/���''7 ��
złożone: object, function i movieclip. ActionScript jest językiem trak-tującym typy danych zupełnie swobodnie, co oznacza że:
• Zmienne mogą przechowywać dowolny typ danych.
• Dla funkcji nie deklaruje się typów zwracanych ani typówparametrów.
• Pojemniki z danymi (zmienne, elementy tablic i właściwościobiektów) mogą zmieniać swój typ w dowolnym momencie.
• Klasy nie są formalnie odrębnymi typami (wszystkie klasy sątraktowane jako dane typu object).
Typy danych 23
Jeśli wartość pewnego typu jest używana w kontekście wymaga-jącym zastosowania innego typu danych, interpreter ActionScriptdokona automatycznej konwersji tej wartości na odpowiedni typdanych. Przykładowo, instrukcja if wymaga, aby wynik wyra-żenia warunkowego był typu boolean. Jeśli jednak będzie to war-tość innego typu, interpreter automatycznie przekonwertuje ją naten typ danych przed sprawdzeniem warunku:
� ��)����� ���.�� ���"� �'�� ������)���5�������� � � ��)���'� �)���9��9�� ���:;���<����� ����59����)�=�����#����)����������)' �>)�������"&
Typ wartości może być zmieniony również bezpośrednio, co wyja-śniono dokładniej w podrozdziale „Jawna konwersja typówdanych”. Zasady dotyczące zarówno jawnego, jak i automatycz-nego konwertowania typów danych przedstawiono w poniższychtabelach.
Zasady konwersji typów danych
W tabeli 4. przedstawiono wynik konwersji każdego z typówdanych na typ number.
W tabeli 5. przedstawiono wynik konwersji każdego z typówdanych na typ string.
W tabeli 6. przedstawiono wynik konwersji każdego z typówdanych na typ boolean.
Jawna konwersja typów danych
Poniżej opisano sposoby konwersji dowolnych wartości na typystring, number i boolean.
24 Flash MX. ActionScript. Leksykon kieszonkowy
Tabela 4. Konwersja na typ number
Oryginalne dane Wynik konwersji na typ number
��������� (
��'' (
���'� � �, jeśli oryginalną wartością była ���� (prawda); (,jeśli oryginalną wartością była � '�� (fałsz)
Łańcuchzawierający liczbę
Odpowiadająca jej wartość liczbowa, jeśli łańcuch składałsię wyłącznie z liczb dziesiętnych, białych znaków,wykładnika, kropki dziesiętnej, znaku ? lub @ (np. %�#ABC��)
Inny łańcuch Łańcuchy puste i takie, które nie definiują liczby(z rozpoczynającymi się od +, (+ czy 22 włącznie)są konwertowane na wartość D D (ang. not a number)oznaczającą, że nie jest to wartość liczbowa
EF�������E F������� (nieskończoność)
E%F�������E %F������� (minus nieskończoność)
ED DE D D
Tablica D D
��9��� Wartość zwracana przez metodę ���� ��� obiektu
������'�) D D
Tabela 5. Konwersja na typ string
Oryginalne dane Wynik konwersji na typ string
��������� EE�)����= G�����
��'' E��''E
���'� � E����E, jeśli oryginalną wartością była ���� (prawda);E� '��E, jeśli oryginalną wartością była � '�� (fałsz)
D D ED DE
( E(E
F�������(nieskończoność)
EF�������E
%F�������(minus nieskończoność)
E%F�������E
Typy danych 25
Tabela 5. Konwersja na typ string — ciąg dalszy
Oryginalne dane Wynik konwersji na typ string
Inna wartość liczbowa Łańcuch odpowiadający tej wartości, dlaHAA#IAC będzieto EHAA#IACE
Tablica Lista wartości tablicy oddzielonych przecinkami
��9��� Wartość zwracana przez metodę ���������� obiektu;domyślnie metoda ta zwraca EJ��9���>�9���KE,ale może być również dostosowana (przykładowodla obiektu ���� metoda ta zwraca czytelną datę, taką jakE/��, ��B��LIBL�(-M1�((IE)
�����-'�) Ścieżka bezwzględna do instancji klipu filmowego,rozpoczynająca się od poziomu dokumentu w odtwarzaczuFlash Player, np. E*'���'(#� ''E
Tabela 6. Konwersja na typ boolean
Oryginalne dane Wynik konwersji na typ boolean
��������� � '��
��'' � '��
D D � '��
( � '��
F������� ����
%F������� ����
Inna wartość liczbowa ����
Niepusty łańcuchznakowy
����, jeśli łańcuch może zostać przekonwertowany naprawidłową liczbę różną od zera, w przeciwnym razie � '��;specyfikacja ECMA-262 określa, że niepusty łańcuch zawszejest konwertowany na wartość ����, (Flash odstępuje odniej dla zachowania wstecznej zgodności z Flashem 4)
Pusty łańcuchznakowy (EE)
� '��
Tablica ����
��9��� ����
������'�) ����
26 Flash MX. ActionScript. Leksykon kieszonkowy
Konwersja na typ string
Wartość może zostać przekonwertowana na typ string za pomo-cą metody toString��, funkcji String�� lub przez konkatenację tejwartości z pustym łańcuchem tekstowym:
�����������������9� ���� 9���9� ���:;��)������� �� �("5������9 �������9�� = G������5������ )������ � �#��/�������"����������� �� /��������"��������� �� �?EE5��5 ��� �9�
Aby przekonwertować wartość liczbową na łańcuch reprezen-tujący ją w zapisie szesnastkowym, należy zastosować metodętoString�� z argumentem 16, oznaczającym podstawę systemuliczbowego:
� �+ �CC"�� ���+#��/�������N��"��:����'�L��
Konwersja na typ number
Wartość może zostać przekonwertowana na typ number za pomocąfunkcji Number��, parseInt��, parseFloat�� lub przez odjęcie zera:
�����������������9� ���� 9���9� ���:;��)��������#� ��' � ����"5������9 �������9����� '������ )�����###� � D�������' ��"�������� �� �' �@("��9��� ���
Funkcja parseInt�� wybiera z łańcucha znaków pierwszą napo-tkaną liczbę całkowitą, o ile pierwszym znakiem łańcucha (nielicząc znaków białych) jest prawidłowa wartość liczbowa. W prze-ciwnym razie zwracana jest wartość D D:
) ���F���E� E���� � �) ���F���E�#I E���� � �) ���F���E����5L�(((E���� � D D
Typy danych 27
Aby przekonwertować wartość szesnastkową na liczbę dziesiętną,łańcuch zawierający tę wartość powinien rozpoczynać się od (+L
5������9 = G���� �� 5��� ����9 5�'���� ����� ��5�� ����9 ���������)���� ���N�� 9��CC) ���F���E(+22E�
Można również podać jawnie podstawę �N jako drugi argumentfunkcji parseInt��:
5������9 = G���� �� 5��� ����9 5�'���� ����� ��5�� �9 ���������)���� ���N�� 9��CC) ���F���E22E<�N�
Funkcja parseFloat�� zwraca pierwszą liczbę zmiennoprzecinkowąnapotkaną w łańcuchu tekstowym, o ile pierwszym znakiem łań-cucha (nie licząc znaków białych) jest prawidłowa wartość licz-bowa. W przeciwnym razie funkcja zwraca D D:
��� � �#C) ���2'� ��E�#C������5=�����E���� � D D) ���2'� ��E8 ���L�#CE�
Konwersja na typ boolean
Wartość może być przekonwertowana na typ boolean za pomocąfunkcji Boolean��:
� ���9 ���>�9�����"��� � � ���:;������������� ��'�N�0��'� ����9�
Określanie typu danych i klasy
Aby sprawdzić typ danych dowolnej wartości, należy zastosowaćoperator typeof:
28 Flash MX. ActionScript. Leksykon kieszonkowy
�� �����)������"��:����' LE������E� �� �� EO ��5E"�� �����)���� �����:����' LE������E
Aby sprawdzić czy obiekt należy do określonej klasy, należy użyćoperatora instanceof. Poniższy kod przedstawia utworzenie nowejinstancji typu ����� oraz sprawdzenie, czy należy ona do klasy �����:
� �'��� JE9����E<E�� E<E����EK"��:����' L������ ���'������� �����.�� ��"
Typ danych number
ActionScript posiada jeden typ danych, number, reprezentującyzarówno całkowite, jak i zmiennoprzecinkowe wartości liczbowe(w formacie zmiennoprzecinkowym o podwójnej precyzji oferujeon dokładność do 15 cyfr znaczących). Wartość liczbowa składasię z sekwencji cyfr, po której następuje opcjonalna kropka dzie-siętna oraz opcjonalny wykładnik:
II#�A�C�C��� �� �C(((((
Początkowy znak �? lub %) jest opcjonalny. Jeśli wartość rozpo-czyna się od znaków (+, jest traktowana jako szesnastkowa, zaśjeśli rozpoczyna się od ( — jako ósemkowa:
(+--����� ��5�� � ���:;--��)��� � '����������������9��(A
W tabeli 7. przedstawiono specjalne wartości typu number.
Typ danych string
Typ danych string reprezentuje dane tekstowe (litery, znaki inter-punkcyjne i inne znaki). Wyrażenie znakowe składa się z dowolnej
Typy danych 29
Tabela 7. Specjalne wartości typu number
Wartość Opis
D D Wartość zwracana w przypadku wystąpienia błędu podczasoperacji liczbowej, takiej jak dzielenie zera przez zero,czy błędu konwersji
D�����#,FD*6.4PM Najmniejsza reprezentowana wartość liczbowa(wartości mniejsze są traktowane jako ()
D�����#,.3*6.4PM Największa reprezentowana wartość liczbowa(wartości większe powodują przekroczenie zakresui są traktowane jako nieskończoność, F�������)
F������� Dowolna liczba większa niż D�����#,.3*6.4PM(np. wynik przekroczenia zakresu w górę)
%F������� Dowolna liczba większa niż %D�����#,.3*6.4PM(np. wynik przekroczenia zakresu w dół)
kombinacji znaków ujętej w pojedynczy lub podwójny cudzysłów.Przykładowo:
EQ�� �� ��9�9������������������9#E)���R9��������=R�SQ�� �� ��9�9������������������9#S)�9�������������=R�
Aby w łańcuchu ujętym w podwójny cudzysłów umieścić znaktakiego cudzysłowu, należy poprzedzić go znakiem T, co przed-stawiono w poniższym przykładzie:
E7������� = TE���:;TE��:�������= ���#E
Od wersji szóstej Flash Playera możemy włączać do łańcuchatekstowego znaki Unicode, podając ich czteroznakowy szesnast-kowy kod liczbowy poprzedzony sekwencją T�. Przykładowo:
T�((.H�� 5E��)������ET��(�A�� 5) ���
W wersji piątej Flash Playera wszystkie sekwencje Unicode (roz-poczynające się od T�) muszą określać znaki ze zbiorów Latin 1 lubShift-JIS — pozostałe nie będą wyświetlone prawidłowo.
30 Flash MX. ActionScript. Leksykon kieszonkowy
Dla łatwego wprowadzania najczęściej spotykanych znaków spe-cjalnych, język ActionScript wyposażono w odpowiedni zestawskrótów, wymienionych w tabeli 8.
Tabela 8. Sekwencje specjalne
Sekwencjaspecjalna
Znaczenie
T� Znak backspace (o kodzie ASCII 8)
T� Znak form feed (o kodzie ASCII 12)
T� Znak nowej linii (o kodzie ASCII 10)
T� Znak powrotu karetki — CR (o kodzie ASCII 13), w systemie Windowsrazem ze znakiem nowej linii oznacza koniec wiersza
T� Znak tabulacji (o kodzie ASCII 9)
TS Pojedynczy cudzysłów
TE Podwójny cudzysłów
TT Znak lewego ukośnika (T); sekwencja jest konieczna do wstawieniatego znaku, gdyż w innym wypadku zostanie on zinterpretowany jakopoczątek sekwencji specjalnej
T+�� Znak strony kodowej Latin 1 o podanym numerze(�� oznacza dwie cyfry szesnastkowe)
T����� Znak Unicode o podanym numerze(���� oznacza cztery cyfry szesnastkowe)
Znaki Unicode mogą być tworzone także za pomocą metody String�fromCharCode��, do której jako argument należy podać listę od-dzielonych przecinkami kodów dziesiętnych lub szesnastkowychżądanych znaków. Przykładowo, poniższe wyrażenie zwracaznak copyright:
/�����#����-� �-�����NH�
Pomimo że Flash Player 6 w pełni obsługuje Unicode, pakietFlash MX tego nie potrafi. Narzędzie to pozwala na stosowaniewyłącznie znaków ze zbiorów Latin 1, Shift-JIS i MacRoman.Aby użyć znaków innych języków, należy wykonać jedną z po-niższych czynności:
Typy danych 31
• Podczas działania programu użyć metod XML.load�� lubLoadVars.load�� do wczytania zewnętrznych plików XML lubplików ze zmiennymi zapisanych w formacie Unicode
• Podczas tworzenia kodu zapisać tekst w zewnętrznym plikutekstowym z rozszerzeniem .as w formacie Unicode, a następ-nie zaimportować go za pomocą dyrektywy U���'���
• Podczas tworzenia kodu stworzyć każdy znak osobno po-przez zastosowanie albo szesnastkowych sekwencji specjal-nych albo metody String.fromCharCode��
Przykładowo, poniższy kod ilustruje utworzenie globalnej zmien-nej o nazwie ����, która zawiera znak euro. Zmienna ta jest następ-nie użyta w polu tekstowym )����*�+� do wyświetlenia na ekranie.
*�'�� '�#���� ET��(.-E"����#��� ��1�+�2��'��E)����*�+�E<�<�((<�((<�((<�(�")����*�+�#��+� EHHE?����"
Gdy prosta wartość znakowa jest stosowana w kontekście wyma-gającym użycia obiektu String, interpreter ActionScript automa-tycznie opakuje ją obiektem String. Pozwala to na wywoływaniemetod charAt�� czy indexOf�� dla łańcucha oraz na sprawdzenieliczby znaków za pomocą właściwości '�����.
� �� �� EV ��'E"�� ���� ��#����+>��E�E��"��:����'�L%��� ���� ��#'������"��:����'�LC
Pełną listę metod i właściwości, których można używać z łańcu-chami znaków można znaleźć w opisie klasy String.
Typ danych boolean
Typ danych boolean służy do reprezentacji logicznych wartościokreślających prawdziwość lub fałszywość stwierdzenia. Zatemistnieją tylko dwie wartości tego typu: ���� (prawda) i � '�� (fałsz).
32 Flash MX. ActionScript. Leksykon kieszonkowy
Wartości tego typu są najczęściej stosowane w pętlach i instruk-cjach warunkowych.
Typy danych null i undefined
ActionScript zawiera dwa typy reprezentujące brak danych: nulli undefined, których jedynymi wartościami są odpowiednio ��''i ���������.
Wartość ��������� jest zwracana przez interpreter automatycznie,jeśli zmienna, właściwość czy element tablicy, do którego nastą-piło odwołanie nie ma jeszcze przypisanej wartości.
W przeciwieństwie do tego, wartość ��'' jest używana przez pro-gramistów do zaznaczenia, że zmienna, właściwość czy elementtablicy celowo nie ma przypisanej wartości.
Warto zwrócić uwagę na fakt, że ��'' i ��������� są przez operatorporównania ( � traktowane jako równe. Aby jednoznacznie je roz-różnić, należy zastosować operator ścisłej równości, który jest ozna-czany trzema znakami równości ( ). Operator ten przed porówna-niem wartości sprawdza czy oba wyrażenia są tego samego typu.
Typ danych object
W języku ActionScript typ object służy do przechowywania zbio-rów logicznie powiązanych ze sobą danych (nazywanych właści-wościami) oraz funkcji (nazywanych metodami). Więcej informacjina ten temat można znaleźć w rozdziale „ActionScript zoriento-wany obiektowo” niniejszej książki.
Typ danych function
Typ danych function reprezentuje funkcje języka ActionScript.Są to fragmenty kodu, których można używać wielokrotnie
Typy danych 33
(w niektórych językach są nazywane podprocedurami). Więcej in-formacji na ten temat można znaleźć w rozdziale „Tworzeniei używanie funkcji”.
Typ danych movieclip
Typ danych movieclipreprezentuje klipy filmowe, podstawowepojemniki Flasha. Klipy filmowe są stosowane tak samo jak obiekty,ale należą do osobnego typu danych ze względu na sposób, w jakiinterpreter przydziela i zwalnia ich zasoby (patrz http://moock.org/asdg/technotes/movieclipDatatype/). Więcej informacji na ten tematmożna znaleźć w rozdziale „Używanie klipów filmowych” niniej-szej książki.
Top Related