Professional Documents
Culture Documents
PRZYKADOWY ROZDZIA
SPIS TRECI
KATALOG KSIEK
KATALOG ONLINE
ZAMW DRUKOWANY KATALOG
TWJ KOSZYK
DODAJ DO KOSZYKA
CENNIK I INFORMACJE
ZAMW INFORMACJE
O NOWOCIACH
ZAMW CENNIK
CZYTELNIA
FRAGMENTY KSIEK ONLINE
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.
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
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
w obszarze roboczym.
13
Rysunek 1.3.
Gotowe przyciski
do wykorzystania
w animacji
14
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
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.
16
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.
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();
}
}
17
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();
}
18