You are on page 1of 11

IDZ DO

PRZYKADOWY ROZDZIA
SPIS TRECI

KATALOG KSIEK
KATALOG ONLINE
ZAMW DRUKOWANY KATALOG

Flash MX 2004 ActionScript.


wiczenia praktyczne
Autor: Daniel Bargie
ISBN: 83-246-0005-1
Format: B5, stron: 104
Przykady na ftp: 2323 kB

TWJ KOSZYK
DODAJ DO KOSZYKA

CENNIK I INFORMACJE
ZAMW INFORMACJE
O NOWOCIACH
ZAMW CENNIK

CZYTELNIA
FRAGMENTY KSIEK ONLINE

Odkryj kolejne zastosowania Flasha MX


Po opanowaniu narzdzi graficznych oferowanych przez Flasha MX 2004 czas na
nastpny krok -- poznanie potgi jzyka ActionScript. ActionScript to obiektowy jzyk
programowania, dziki ktremu Twoje animacje zyskaj setki nowych moliwoci
i zastosowa. Wykorzystujc ActionScript moesz kontrolowa nie tylko animacj,
ale wszystkie zawarte w niej obiekty. Moliwoci tego jzyka pozwalaj rwnie na
stworzenie aplikacji, ktra wymienia dane z przegldark, baz danych lub innym
serwerem, interaktywnych formularzy, rozwijanych menu i wskanikw postpu
adowania animacji. Dopiero zastosowanie ActionScript pozwala na wykorzystanie
wszystkich moliwoci Flasha.
Ksika Flash MX 2004 ActionScript. wiczenia praktyczne to wprowadzenie do
programowania w jzyku ActionScript. Wykonujc zawarte w niej wiczenia poznasz
podstawowe zagadnienia zwizane ze stosowaniem tego jzyka w swoich aplikacjach.
Nauczysz si docza kod ActionScript do elementw animacji, korzysta z klas
i obiektw, tworzy mechanizmy komunikacji animacji z przegldark WWW i przesya
strumieniowo obraz wideo za pomoc Flash Communication Server MX.
Umieszczanie kodu ActionScript w obiektach Flasha
Zasady tworzenia kodu sterowanego zdarzeniami
Obiekty i klasy jzyka ActionScript
Wymiana danych pomidzy animacj a przegldark WWW
Integracja aplikacji z Flash Communication Server MX
Tworzenie prostego chata w ActionScript

Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl

Spis treci
Wstp ................................................................................................................................................................5
Co daje ActionScript .................................................................................................. 5
Gdzie docza skrypty ............................................................................................... 6
Prosta interaktywna animacja ..................................................................................... 7
Rozdzia 1.

Podstawy ActionScript ...........................................................................................................................11


Interakcje w animacjach przyciski i klipy filmowe ............................................. 11
Detektor on onMouseEvent ........................................................................... 11
Detektor onClipEvent ......................................................................................... 16
Kontrola odtwarzania animacji ................................................................................. 18
Programowanie w ActionScript ................................................................................ 21
Zmienne w ActionScript ..................................................................................... 21
Tworzenie funkcji w ActionScript ...................................................................... 23
Instrukcje warunkowe ......................................................................................... 25
Debugowanie skryptw ............................................................................................ 27

Rozdzia 2. Programowanie zdarzeniowe w ActionScript ..............................................................................31


Podstawy programowania zdarzeniowego .................................................................... 31
Obiekty nasuchujce zdarze .................................................................................. 34
Rozdzia 3. Klasy i obiekty ActionScript ................................................................................................................. 43
Obiekty w ActionScript 2.0 ...................................................................................... 43
Klasy obiektw ................................................................................................... 44
Najciekawsze klasy wbudowane w ActionScript ..................................................... 48
Obiekt tablicowy Array .................................................................................. 48
Obiekt koloru Color ....................................................................................... 52
Obiekt daty Date ............................................................................................ 53
Obiekt matematyczny Math ........................................................................... 56
Obiekt cigu tekstowego klasa String ............................................................ 56
Menu podrczne klasa ContextMenu i ContextMenuItem ............................. 59
Rozdzia 4. Komunikacja animacji SWF ze rodowiskiem zewntrznym ...............................................65
Komunikacja SWF z przegldark WWW ............................................................... 65
Komunikacja przegldarki WWW z animacj SWF ................................................ 69
Pobieranie danych z plikw ...................................................................................... 72

Flash MX 2004 ActionScript. wiczenia praktyczne

Rozdzia 5. Transmisja strumieni wideo Flash Communication Server MX ..............................75


Co potrafi Flash Player 7 .......................................................................................... 75
Flash Communication Server MX ............................................................................ 79
Transmisja strumieni wideo ...................................................................................... 81
Rozdzia 6. Aplikacja chat ............................................................................................................................................91
Projekt aplikacji ........................................................................................................ 91
Narzdzia administracyjne ....................................................................................... 99

1.
Podstawy ActionScript
Rozdzia

Interakcje w animacjach
przyciski i klipy filmowe
Czytelnik dowiedzia si ju, e aby dodawa skrypty do takich obiektw jak klip filmowy
lub przycisk, niezbdne s detektory zdarze. Czym jednak tak naprawd s owe detektory? Jakie zdarzenia mog przechwytywa? Czym rni si detektor on od detektora
onClipEvent? Na te wszystkie pytania odpowiemy sobie w tym rozdziale. Pokaemy te
kilka wicze, aby uatwi Czytelnikowi opanowanie sposobu dodawania skryptw do
odnonikw.

Detektor on onMouseEvent
Detektor on jest funkcj, ktr trzeba doda do skryptu, aby umieci go w przycisku.
Jeli uytkownik sprbuje doda skrypt do przycisku bez detektora on, to przy prbie
opublikowania animacji Flash wywietli komunikat o bdzie a dodany skrypt nie bdzie
dziaa.
Aby sprawdzi poprawno skryptu, w trakcie wpisywania kodu mona wcisn kombinacj klawiszy Ctrl+T lub w panelu akcji klikn przycisk Check syntax (rysunek 1.1).
Rysunek 1.1.
Przycisk Check Syntax w panelu
akcji pozwala na sprawdzenie,
czy wprowadzony kod jest
formalnie poprawny

12

Flash MX 2004 ActionScript. wiczenia praktyczne

Jeli skrypt jest poprawny, Flash wywietli okno z komunikatem This script contains no
errors (Ten skrypt nie zawiera bdw). W przeciwnym przypadku zostanie wywietlony
panel Output z dokadnym opisem bdu oraz miejscem jego wystpienia.
Gdy podczas lektury tej ksiki Czytelnik spotka si z okreleniem w stylu: dodaj skrypt
do przycisku lub dodaj skrypt do klipu filmowego, oznacza to, e naley doda w skrypt
do odnonika tego obiektu, znajdujcego si w obszarze roboczym, a nie do samego symbolu.
Czstym bdem pocztkujcych uytkownikw Flasha jest prba dodawania skryptw,
ktre maj by wykonywane po klikniciu przycisku, do samego symbolu owego przycisku,
np. do ujcia Down. Nie tdy droga. Takie podejcie jest nieefektywne, poniewa jeli np.
uytkownik zmieni zdanie i tak dodany skrypt bdzie mia by wykonywany po naprowadzeniu
wskanika myszy na przycisk, konieczne bdzie przeniesienie caego kodu skryptu do ujcia
Over. Drug niedogodnoci takiego sposobu pracy jest fakt, e wszystkie odnoniki, jakie
zostan umieszczone w obszarze roboczym, bd zachowyway si tak samo.
wiczenie 1.1.

Detektor on posiada argument, ktry decyduje, kiedy skrypt zostanie wykonany. Ponisze,
proste wiczenie pozwoli na dokadne przeanalizowanie dziaania tego detektora.
1. Najpierw naley utworzy przycisk. Do odnonika tego przycisku zostan doczone

akcje. Symbol mona utworzy rcznie lub skorzysta z jednego z gotowych przyciskw,
ktre mona znale wybierajc z menu Window polecenie Other panels, a nastpnie
Common Libraries i Buttons (rysunek 1.2).
Rysunek 1.2.
W menu Common
Libraries znajduje
si wiele gotowych
obiektw, takich jak
np. gotowe przyciski

Flash wywietli okno biblioteki, w ktrej symbole przyciskw s pogrupowane


w katalogach (rysunek 1.3).
2. Umie dowolny z przyciskw w obszarze roboczym. W tym celu przecignij

go z otwartego panelu biblioteki (rysunek 1.3).


3. Flash automatycznie skopiuje symbol do biblioteki projektu i umieci jego odnonik

w obszarze roboczym.

Rozdzia 1. Podstawy ActionScript

13

Rysunek 1.3.
Gotowe przyciski
do wykorzystania
w animacji

4. Po wybraniu nowego odnonika do przycisku otwrz panel akcji i do okna programu

wpisz kod przedstawiony na listingu 1.1 (rysunek 1.4).


Rysunek 1.4.
Kod skryptu z listingu
1.1 w panelu akcji

14

Flash MX 2004 ActionScript. wiczenia praktyczne

Listing 1.1. Kod doczony do odnonika przycisku


//Akcja zostanie wykonana, gdy wskanik myszy
//znajdzie si nad odnonikiem
on(rollOver) {
trace('Akcja rollOver');
}
//Akcja zostanie wykonana, gdy wskanik myszy
//zostanie usunity znad odnonika
on(rollOut) {
trace('Akcja rollOut');
}

Podczas wpisywania kodu do panelu akcji Flash podpowiada programicie, jakie moliwoci
pozostaj do wykorzystania. W przypadku skryptu z listingu 1.1 po wpisaniu cigu znakw
on( Flash powinien automatycznie wywietli list moliwych do wyboru zdarze, jakie moe
przechwyci detektor on (rysunek 1.5).
Rysunek 1.5.
W trakcie tworzenia
skryptu programista
moe korzysta
z mechanizmu
uzupeniania kodu

5. Opublikuj teraz animacj. W tym celu wybierz z menu Control polecenie Test Movie

lub wcinij kombinacj klawiszy Ctrl+Enter.


Jeeli w trakcie odtwarzania animacji uytkownik kilkukrotnie przesunie wskanik
myszy nad odnonik do przycisku, to w oknie Output pojawi si komunikaty
informujce o wystpieniu akcji rollOver oraz rollOut (rysunek 1.6).
Rysunek 1.6.
Efekt dziaania
skryptu z listingu 1.1

Dodajc jakikolwiek skrypt do odnonika do przycisku naley zdawa sobie spraw, e


przycisk reaguje tylko i wycznie na zdarzenia. W przypadku przycisku tym zdarzeniem
moe by przesunicie wskanika myszy nad przycisk, kliknicie przycisku itp.

Rozdzia 1. Podstawy ActionScript

15

W dalszej czci tej ksiki czsto bdziemy posugiwa si sowem przycisk, ktre bdzie
oznaczao odnonik do symbolu przycisku (Button), chyba e w tekcie wyranie zostanie
zaznaczone inaczej.

Tak wic w skrypcie dodawanym do przycisku trzeba umieszcza detektory zdarze, ktre
nosz nazw on. Jeden detektor zdarze moe przechwyci jedno zdarzenie, zatem jeeli
przycisk ma reagowa na kilka zdarze, naley umieci kilka detektorw on.
O tym, jakie zdarzenie przechwytuje detektor on, decyduje parametr podany jako argument detektora. Na listingu 1.1 wida, e utworzono dwa detektory, z ktrych pierwszy
przechwytywa zdarzenie rollOver a drugi zdarzenie rollOut.
Zdarzenie rollOver zachodzi wtedy, gdy wskanik myszy znajdzie si nad przyciskiem,
do ktrego przypisano to zdarzenie, natomiast zdarzenie rollOut zachodzi, gdy wskanik
myszy opuci obszar przycisku, do ktrego przypisano to zdarzenie.
Gdy zajdzie zdarzenie, ktrego oczekuje okrelony detektor on, wtedy zostanie wykonany
kod zawarty midzy znakami { oraz }. W przypadku pokazanym na listingu 1.1 jest to
funkcja trace(), ktrej zadaniem jest wywietlenie tekstu w panelu Output.
Funkcja trace() dziaa tylko i wycznie wtedy, gdy animacja jest publikowana w rodowisku
Flasha, poniewa jedynie tam istnieje okno Output, do ktrego funkcja wysya wyniki.

W ramach podsumowania poniej przedstawiono zdarzenia, ktrych obsug zapewnia


detektor on dodany do przycisku:
Press on(press) {...} kod zawarty wewntrz bloku detektora on jest
wykonywany w razie wcinicia lewego przycisku myszy, gdy jej wskanik
znajduje si nad przyciskiem;
Release on(release) {...} kod zawarty wewntrz bloku detektora on jest
wykonywany po zwolnieniu lewego przycisku myszy, gdy jej wskanik znajduje
si nad przyciskiem;
Release Outside on(releaseOutside) {...} kod zawarty wewntrz bloku
detektora on jest wykonywany po zwolnieniu lewego przycisku myszy, gdy jej
wskanik znajduje si poza obszarem przycisku, pod warunkiem jednake,
e wczeniej uytkownik klikn ten przycisk;
Key Press on(keyPress "klawisz") {...} kod zawarty wewntrz bloku
detektora on jest wykonywany po wciniciu na klawiaturze klawisza klawisz.
Pooenie wskanika myszy ani stan jej przyciskw nie odgrywaj w tym
przypadku adnej roli;
Roll Over on(rollOver) {...} kod zawarty wewntrz bloku detektora on
jest wykonywany, gdy wskanik myszy znajdzie si w obszarze przycisku;
Roll Out on(rollOut) {...} kod zawarty wewntrz bloku detektora on
jest wykonywany, gdy wskanik myszy opuci obszar przycisku;
Drag Over on(dragOver) {...} technika Drag&Drop. Kod zawarty wewntrz
bloku detektora on jest wykonywany, gdy uytkownik przesunie wskanik myszy
nad przycisk, wcinie jej lewy przycisk i nastpnie wci przytrzymujc wcinity
lewy przycisk myszy cofnie jej wskanik z obszaru przycisku a nastpnie tam
powrci;

16

Flash MX 2004 ActionScript. wiczenia praktyczne

Drag Out on(dragOut) {...} technika Drag&Drop. Kod zawarty wewntrz


bloku detektora on jest wykonywany, gdy uytkownik przesunie wskanik myszy
nad przycisk, wcinie jej lewy przycisk a nastpnie wci przytrzymujc
wcinity lewy przycisk myszy cofnie jej wskanik z obszar przycisku.

Detektor onClipEvent
Drugim z detektorw zdarze dostpnych w ActionScript jest detektor onClipEvent, ktry
jest dodawany do klipu filmowego. Dziaanie detektora onClipEvent jest do podobne
do dziaania detektora on ale istniej pewne rnice. Aby Czytelnik atwiej je zrozumia,
proponujemy wykonanie prostego wiczenia.
wiczenie 1.2.

Ponisze wiczenie pozwoli zrozumie dziaanie detektora onClipEvent:


1. Utwrz dowolny ksztat, a nastpnie przekszta go do symbolu Movie Clip.
2. Wybierz odnonik, otwrz panel akcji a nastpnie w oknie kodu wpisz skrypt

z listingu 1.2.
Listing 1.2. Skrypt dodajcy klip filmowy do wskanika myszy
//Przechwycenie zdarzenia nastpi po wciniciu lewego
//przycisku myszy. Pooenie myszy nie ma znaczenia
onClipEvent(mouseDown) {
if (hitTest(_root._xmouse, _root._ymouse, true)) {
startDrag();
}
}

Zdarzenie mouseDown zachodzi, jeli uytkownik ogldajcy animacj SWF wcinie


lewy przycisk myszy, podczas gdy jej wskanik znajduje si w oknie animacji.
W tym przypadku pooenie wskanika myszy nie ma znaczenia, zatem nie mona
stwierdzi, czy uytkownik klikn klip filmowy, do ktrego przypisano kod
wykrywajcy zdarzenie.
Dlatego te naley zastosowa funkcj hitTest(), ktra sprawdza, czy w momencie
wcinicia lewego przycisku myszy jej wskanik (ktrego pozycja jest reprezentowana
poprzez wsprzdne _xmouse i _ymouse) znajdowa si nad klipem filmowym.
Jeeli wskanik myszy w momencie wcinicia jej lewego przycisku znajduje si
nad klipem filmowym, do ktrego przypisano skrypt, to nastpuje wykonanie funkcji
startDrag(), ktra powoduje pewnego rodzaju przyczenie klipu filmowego do
wskanika myszy, dziki czemu moemy ten odnonik przesuwa w oknie animacji.
3. Pod kodem z listingu 1.2 umie kod z listingu 1.3.
Listing 1.3. Skrypt odwieajcy grafik w obszarze roboczym
//Przechwycenie zdarzenia nastpi, gdy wskanik myszy bdzie porusza si
//w obszarze roboczym. Pooenie tego wskanika nie ma znaczenia
onClipEvent(mouseMove) {
updateAfterEvent()
}

Rozdzia 1. Podstawy ActionScript

17

Zdarzenie mouseMove jest wykonywane za kadym razem, gdy animacja SWF


wykryje ruch myszy (czyli w przypadku cigej pracy myszy zdarzenie to jest
wykonywane bardzo czsto). Zawarta w bloku detektora onClipEvent funkcja
updateAfterEvent() powoduje odwieenie grafiki w obszarze roboczym
niezalenie od aktualnie przyjtej prdkoci animacji. Dziki temu przesuwajc
odnonik w obszarze roboczym moemy zaobserwowa jego pynny ruch.
4. Ostatnim fragmentem skryptu, ktry naley doda do klipu filmowego, jest kod

z listingu 1.4.
Listing 1.4. Kod powodujcy odczenie wskanika myszki od klipu filmowego
//Przechwycenie zdarzenia nastpuje po zwolnieniu lewego przycisku
//myszy. Pooenie tego wskanika nie ma znaczenia
onClipEvent(mouseUp) {
stopDrag();
}

Zdarzenie mouseUp zachodzi po zwolnieniu wczeniej wcinitego lewego przycisku


myszy. Nastpuje wtedy wykonanie funkcji stopDrag(), ktra powoduje odczenie
klipu filmowego od wskanika myszy.
5. Teraz opublikuj animacj, wciskajc kombinacj klawiszy Ctrl+Enter. atwo

zauway, e za pomoc myszy mona przesuwa klip filmowy znajdujcy si


w obszarze roboczym.
Na koniec warto jeszcze krtko scharakteryzowa zdarzenia, na ktre reaguje detektor
onClipEvent:
1. Load onClipEvent(load) {} skrypt zawarty w bloku detektora zostanie

wykonany, gdy klip w caoci zostanie zaadowany do pomici operacyjnej


komputera uytkownika;
2. EnterFrame onClipEvent(enterFrame) {...} skrypt umieszczony w bloku

detektora zostanie wykonany za kadym razem, gdy zostanie wywietlona nowa


klatka animacji zawartej w klipie. Czstotliwo wykonywania skryptu zaley
od prdkoci odtwarzania animacji (liczba wywietlanych klatek na sekund);
3. Unload onClipEvent(unload) {...} skrypt zawarty w bloku detektora

zostanie wykonany, gdy klip filmowy zostanie usunity z pamici komputera


(np. po wywoaniu funkcji removeMovieClip());
4. Mouse down onClipEvent(mouseDown) {...} skrypt zawarty w bloku

wewntrznym detektora zostanie wykonany, gdy uytkownik wcinie lewy przycisk


myszy, przy czym pooenie jej wskanika nie ma adnego znaczenia (moe si
znajdowa w dowolnym miejscu, pod warunkiem, e aktywna jest aplikacja,
odtwarzajca animacj SWF);
5. Mouse up onClipEvent(mouseUp) {...} skrypt zawarty w bloku detektora

zostanie wykonany, gdy uytkownik zwolni lewy przycisk myszy. Pooenie


wskanika myszy nie ma znaczenia;

18

Flash MX 2004 ActionScript. wiczenia praktyczne

6. Mouse move onClipEvent(mouseMove) {...} skrypt zawarty w bloku detektora

zostanie wykonany, gdy uytkownik poruszy mysz;


7. Key down onClipEvent(keyDown){...} skrypt zawarty w bloku detektora

zostanie wykonany, gdy uytkownik wcinie dowolny klawisz na klawiaturze.


Detektor sam w sobie nie zawiera informacji o tym, ktry klawisz zosta wcinity;
8. Key up onClipEvent(keyUp) {...} skrypt zawarty w bloku detektora zostanie

wykonany, gdy uytkownik zwolni wczeniej wcinity klawisz klawiatury.


Detektor nie przekazuje informacji o tym, ktry klawisz zosta zwolniony;
9. Data onClipEvent(data) {...} skrypt zawarty w bloku detektora zostanie

wykonany, gdy do klipu filmowego zostan zaadowane zmienne z zewntrznego


rda danych.

You might also like