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
Flash 5.
Techniki zaawansowane
Autor: praca zbiorowa
ISBN: 83-7197-566-X
Tytu oryginau: Flash 5 Studio
Format: , stron: 710
Zawiera CD-ROM
O Autorach...................................................................................................................... 11
Niezbadany wiat Flasha................................................................................................ 17
Gbia, rozmach i zrozumienie................................................................................................... 17
Podzia ksiki ............................................................................................................................ 18
Preludium...............................................................................................................................................18
Tworzenie zawartoci ............................................................................................................................18
ActionScript...........................................................................................................................................18
Dynamiczna zawarto ..........................................................................................................................18
Konteksty...............................................................................................................................................18
Cz I Preludium............................................................................ 21
Rozdzia 1. Zasady projektowania witryny internetowej .............................................. 23
Uyteczno................................................................................................................................ 24
Uyteczno Flasha ...............................................................................................................................24
Najczciej spotykane problemy zwizane z uytecznoci witryn internetowych
wykonanych we Flashu .......................................................................................................................25
Adresy witryn internetowych powiconych uytecznoci...................................................................26
Kompozycja................................................................................................................................ 48
Elementy kompozycji ............................................................................................................................49
Kierunek czytania ..................................................................................................................................51
Szkic kompozycyjny..............................................................................................................................51
Zakoczenie................................................................................................................................ 82
Zakoczenie.............................................................................................................................. 138
Spis treci
Zakoczenie.............................................................................................................................. 208
Rozdzia 7. Efekty przezroczystoci................................................................................209
Aktualizacja oryginalnych obrazkw ....................................................................................... 216
Optymalizacja rozmiaru pliku animacji ................................................................................... 219
Zawansowana animacja map bitowych .................................................................................... 221
Zakoczenie.............................................................................................................................. 222
Rozdzia 8. Maskowanie i efekty tekstowe....................................................................225
Warstwy.................................................................................................................................... 225
Podstawy maskowania.............................................................................................................. 226
Animowanie masek .................................................................................................................. 229
Zamaskowany tekst .............................................................................................................................229
Efekt reflektora ....................................................................................................................................232
Efekt koa kolorw ..............................................................................................................................235
Zakoczenie.............................................................................................................................. 263
Zakoczenie.............................................................................................................................. 286
Zakoczenie.............................................................................................................................. 350
Spis treci
Zakoczenie.............................................................................................................................. 387
Rozdzia 13. Stosowanie prostych procedur w grach....................................................389
Prosta gra w ping-ponga ........................................................................................................... 395
Co powinienem zrobi teraz? ................................................................................................... 412
Typowe elementy gry ..........................................................................................................................412
Zakoczenie.............................................................................................................................. 414
Rozdzia 14. Programowanie gier..................................................................................415
Kosmiczna gra .......................................................................................................................... 415
Modyfikacja gry ....................................................................................................................... 436
Rozdzia 15. Flash i trzeci wymiar .................................................................................439
Co jest moliwe, a co praktyczne? ........................................................................................... 439
Wszystko o okrgach................................................................................................................ 441
Sinus i cosinus .....................................................................................................................................442
Ruch po okrgu....................................................................................................................................443
O Z .......................................................................................................................................... 446
Obrt wok osi Y ...............................................................................................................................447
Prawdziwa perspektywa ......................................................................................................................448
Obrt wok osi X ...............................................................................................................................450
Zakoczenie.............................................................................................................................. 498
Spis treci
Zakoczenie.............................................................................................................................. 612
Zakoczenie.............................................................................................................................. 638
Rozdzia 22. adowanie wstpne i strumieniowanie.....................................................641
Co to jest strumieniowanie? ..................................................................................................... 642
Co to jest adowanie wstpne? ................................................................................................. 643
Ekrany adujce, taktyka rnorodnoci i reakcje uytkownika .............................................. 644
Wstp do konstrukcji ................................................................................................................ 644
Testowanie filmw strumieniowanych i Bandwidth Profiler Flasha ..................................................645
Modyfikacja kolejnoci adowania ......................................................................................................647
Generowanie raportw o rozmiarze.....................................................................................................647
10
Zakoczenie.............................................................................................................................. 671
Rozdzia 23. Optymalizacja Flasha dla wyszukiwarek ..................................................673
Typy wyszukiwarek.................................................................................................................. 673
Szperacze WWW...................................................................................................................... 674
Planowanie witryny przyjaznej wyszukiwarce ........................................................................ 674
Strony wejciowe.................................................................................................................................675
Obsuga standardowych witryn HTML ...............................................................................................675
Witryny internetowe z ramkami ..........................................................................................................676
Witryny internetowe utworzone we Flashu.........................................................................................676
Znaczniki <META> i inne elementy kodu wspomagajce prac wyszukiwarek .................... 680
Co to jest znacznik <META>? ............................................................................................................680
Znaczniki <META> i sowa kluczowe................................................................................................681
Komentarze HTML .............................................................................................................................682
Ukryte pola wejciowe ........................................................................................................................683
Znaczniki obrazkw ............................................................................................................................684
Nazwy plikw, adresy internetowe i cza ..........................................................................................685
Dodatki......................................................................................... 703
Skorowidz ......................................................................................................................705
Odkd powsta Flash, projektanci pracujcy w tym programie usiuj doda do swoich
projektw trzeci wymiar. Wraz z ukazaniem si na rynku aplikacji, takich jak Vecta3D
i Swift 3D, umieszczenie przestrzennej zawartoci na stronie WWW stao si stosunkowo proste. Od tej pory elementy 3D stosowano z rnym powodzeniem w wielu
witrynach internetowych i grach w trybie online. Efekty trjwymiarowe niezmiennie
przycigaj uwag internautw, lecz atwo jest wpa w puapk, stosujc je w nieodpowiednich miejscach. Chocia tematem tego rozdziau jest tworzenie trjwymiarowych
obiektw we Flashu, sam jestem przeciwnikiem nadmiernego wykorzystywania efektw
3D w sieci. Zestaw narzdzi przeznaczonych do tworzenia grafiki trjwymiarowej moe
oczywicie pomc w opracowaniu niezwykle atrakcyjnych i niezapomnianych efektw,
niemniej jednak podczas projektowania naley pamita o ich wadach. Elementy trjwymiarowe mog znacznie obciy procesor, a zbyt czste ich stosowanie niekorzystnie wpywa na cay projekt.
Dziki wprowadzeniu rodowiska ActionScript do Flasha 4 i poszerzeniu jego moliwoci
w 5. wersji tej aplikacji, zamiast polega na predefiniowanych obliczeniach, moemy
przeprowadza kalkulacje 3D w czasie rzeczywistym. Mimo udoskonale wprowadzonych w nowym odtwarzaczu Flasha 5, wymagania dotyczce procesora podczas wykonywania skomplikowanych oblicze we Flashu (z zachowaniem przyzwoitej prdkoci
filmu) nadal s dosy wysokie. S jednak sposoby na obejcie tych ogranicze.
440
Cz III K ActionScript
441
Wszystko o okrgach
Zanim wemiemy pod uwag takie zastosowania, niezbdne jest zrozumienie sposobu
przeprowadzania tych prostych oblicze 3D. To wanie bdzie stanowi gwny temat
tego rozdziau, w ktrym przedstawi take proces generowania we Flashu prostego
mechanizmu 3D. Na jego serce skada si kilka okrgw i oblicze ktw. W tym
celu przygotowaem pliki w formacie FLA. Ich analiza powinna Ci uatwi zrozumienie
wszystkich operacji przeprowadzonych w tym rozdziale.
Pliki te, zapisane w formacie FLA, znajdziesz na pycie CD-ROM doczonej do ksiki.
Zalecam, aby mia do nich dostp w trakcie pracy nad wiczeniami. Jednym
z najlepszych sposobw uczenia si jest eksperymentowanie, dlatego te warto
powici wystarczajco duo czasu na przeanalizowanie poszczeglnych etapw
wiczenia i przykadw.
Na pocztek powinnimy si dokadnie zastanowi, jakie efekty chcemy uzyska. Naszym celem jest utworzenie we Flashu 5 efektw 3D przy uyciu jzyka ActionScript.
Kocow wersj projektu (ktry za chwil wykonamy) umieciem w pliku sample_13.fla. Wykorzystaem w nim jzyk ActionScript do obliczenia wsprzdnych szecianu w przestrzeni i stworzenia iluzji trzeciego wymiaru. Wyraz iluzja uyty w tym
kontekcie nie oznacza bynajmniej, e wiczenia przedstawione w tym rozdziale dotycz tworzenia pseudotrjwymiarowych efektw. Wyraz ten zosta uyty dlatego, poniewa obiekt trjwymiarowy umieszczony na dowolnej dwuwymiarowej powierzchni
nie jest niczym innym jak iluzj. Uzyskuje si j za pomoc kombinacji waciwoci x i y
poszczeglnych punktw w trjwymiarowym obiekcie i skalowanie ich podczas ruchu
punktw w przestrzeni. Nasz szecian przypomina wygldem obiekt trjwymiarowy
dziki przestrzeganiu podczas rysowania odpowiednich regu, umoliwiajcych szybkie
skojarzenie i wyobraenie sobie obiektu umieszczonego w przestrzeni trjwymiarowej.
Poniewa yjemy w trjwymiarowym wiecie, intuicyjnie rozpoznajemy takie efekty
perspektywy, jak zmniejszanie si obiektw wraz z oddalaniem si ich od nas, czy zbieganie si linii w niewidocznych punktach.
W pliku sample_13.fla kluczow rol odgrywa iluzja. Dziki niej elmenty w obiekcie wygldaj tak, jakby obracay si wok punktu centralnego. Jeli uywae Flasha 3, na pewno
prbowae animowa obiekt wzdu spaszczonej owalnej cieki w celu symulowania
442
Cz III K ActionScript
obrotu 3D wok punktu centralnego. Jest to wanie jeden ze sposobw imitowania
efektw trjwymiarowych w rodowisku ActionScript. Jeli potrafimy obliczy kolist
ciek zamiast animowa j, jestemy na dobrej drodze do utworzenia we Flashu trjwymiarowych efektw w czasie rzeczywistym.
Sinus i cosinus
W szkole podstawowej na pewno si uczye o zwizku funkcji trygonometrycznych
sinus (sin) i cosinus (cos) z okrgami. Nie bdziemy wyjania dziaania tych funkcji,
gdy nie jest to naszym zadaniem. Jeli chciaby dowiedzie si wicej o funkcjach
trygonometrycznych, zajrzyj do podrcznikw lub skorzystaj z niezliczonych materiaw dostpnych w Internecie i szkoach. Przyjrzyjmy si teraz funkcjom trygonometrycznym i przekonajmy si, co mog nam zaoferowa.
Majc podan warto kta, moemy zastosowa funkcje sinus i cosinus do obliczenia
wsprzdnych punktu, w ktrym linia narysowana pod tym ktem przecina si z koem
o rodku w punkcie, z ktrego rysowana jest linia. Podczas symulacji trzeciego wymiaru funkcje sinus i cosinus su zatem do obliczania kolistej cieki wok punktu centralnego. Cosinus reprezentuje warto poziom (X), a sinus warto pionow (Y)
wsprzdnej. Poniej przedstawilimy ilustracj dziaania tych dwch funkcji.
Wartoci sinusa i cosinusa dla danego kta oparte s na okrgu o promieniu dugoci jednej jednostki, zwanym rwnie koem jednostkowym (jak na rysunku). Promie reprezentuje odlego midzy punktem rodkowym (0,0) i krawdzi koa. Z tymi danymi
rwnanie dla obliczenia wsprzdnej x wyglda tak jak zostao przedstawione poniej.
443
Inaczej ni to miao miejsce w poprzednich wersjach, we Flashu 5 funkcje trygonometryczne s funkcjami wbudowanymi i moemy uzyska do nich dostp za pomoc
nowego obiektu . W kodzie ActionScript moemy napisa rwnania w sposb, ktry zosta przedstawiony poniej.
Wydaje si to proste, lecz jest oczywicie pewien kruczek kty stosowane przez
obiekty i
mierzone s w radianach, a nie w stopniach. Jeli jednak
wolisz uywa stopni, moesz przeksztaci je za pomoc poniszego rwnania.
F
!
"#$
Rwnania te umoliwi Ci obliczenie wsprzdnych x i y dowolnego punktu przecinajcego si z koem o podanym promieniu.
Ruch po okrgu
Przeprowadzimy teraz test. Po otworzeniu pliku sample_01.fla zobaczysz, e listwa czasowa skada si z pojedynczej kopii klipu filmowego umieszczonej na rodku sceny. Cay kod wpiszemy do tego klipu, wic dwukrotnie go kliknij, aby spowodowa otwarcie do edycji.
444
Cz III K ActionScript
Ten klip filmowy zawiera dwa kolejne klony klipw filmowych kko o nazwie kopii Point i krzyyk o nazwie kopii centerPoint. Waciwoci
i klipu centerPoint
su jako odnoniki do wsprzdnej, wok ktrej klip Point bdzie si porusza.
W tym przypadku wsprzdna ta odpowiada rodkowi klipu filmowego (0,0).
Jeli przyjrzysz si ukadowi listwy czasowej, zauwaysz, e ten klip filmowy skada
si tylko z trzech uj. Zawieraj one kod ActionScript. Ujcie 1. jest ujciem konfiguracyjnym, w ktrym umiecilimy rne funkcje. Dwukrotnie kliknij ujcie 1., aby edytowa jego zawarto, ktra zostaa przedstawiona poniej.
! "
#$
%
&
&
'(
)(
*
+,'(# +,
+*)(# +*
%
445
Zmienna
zawiera kod obliczajcy punkt na kole w oparciu o omwione
wczeniej rwnania, a nastpnie definiuje now pozycj klipu Point na ekranie, okrelajc jego waciwoci
i .
Ujcie 2. zawiera kod, ktry wywouje akcj
i
. Zosta on przedstawiony poniej.
&
Za pomoc zmiany wartoci promienia ( ) moemy kontrolowa rozmiar kka.
Jeli zamiast poda okrelon warto 100 zmodyfikujemy funkcj
tak, aby zwikszy warto promienia po kadorazowym jej wywoaniu, kolista
cieka bdzie stopniowo si zwiksza (sample_02.fla).
! "
#$
%
&
&
'(
)(
446
Cz III K ActionScript
*
+,'(# +,
+*)(# +*
%
W efekcie uzyskamy klip Point poruszajcy si po spiralnej ciece wok klipu centerPoint.
O Z
W jaki sposb ta spirala zwizana jest z naszym wiczeniem 3D? Nastpny rysunek
przedstawia analiz trzech osi w rodowisku 3D (x, y i z). Jeli przyjrzysz si pierwszej
ilustracji, zrozumiesz, e w dwch omwionych do tej pory przykadach obliczalimy
obrt wok osi z przy uyciu wsprzdnej punktw znajdujcych si na osi x i y
w celu zdefiniowania kolistej cieki. Na ekranie komputera mona wyobrazi sobie
o z jako o skierowan w naszym kierunku (jakby wychodzia z ekranu).
447
! "
#$
%
&
&
'(
*
+,'(# +,
! "
448
Cz III K ActionScript
lecz zamiast porusza si w d i w gr osi y klip Point przemieszcza si teraz do
przodu i do tyu po osi z. Czyli mwic dokadniej skaluje si tak, jak zostao to
zdefiniowane przez sinus kta
. W efekcie powstaje iluzja klipu Point poruszajcego
si po kolistej ciece w przestrzeni, co wida poniej.
Prawdziwa perspektywa
Chocia ten ruch wyglda dosy realistycznie, nie jest jeszcze cakowicie poprawny.
Dopasowalimy skal klipu Point, ale nie wyregulowalimy cieki, ktr poda nasz
obiekt. Jako e cieka rozciga si w nasz stron, oddalajc si od nas, powinna by
widoczna w perspektywie. Aby uzyska taki efekt, wprowadzimy zmienn
i zdefiniujemy waciwoci
,
i klipu Point w stosunku do tej zmiennej.
Na pocztku fragmentu skryptu umieszczonego w ujciu 1. pliku sample_04.fla nowej
zmiennej przypisalimy warto 150, co wida poniej.
#$
! "
#$
%
449
%%
&'
($%$)%
#
*
!*(
!
Warto zmiennej zostaje pomnoona przez warto zmiennej ! w celu zdefiniowania waciwoci
, a nastpnie pomnoona przez 100, aby okreli wartoci waciwoci
i klipu filmowego Point. Im bliej klip filmowy Point znajduje si widza (czyli im wiksza jest warto zmiennej ), tym wiksza bdzie warto
zmiennej . Poniszy rysunek (ktry jest widokiem wzdu osi y, czyli z gry)
przedstawia znieksztacenie cieki wok rodka i wpyw na nie rnych wartoci
zmiennej .
Podczas ogldania rysunku wzdu osi z widoczny bdzie efekt bardziej wyrazistego
ruchu i skalowania w czasie przybliania si obiektu do widza, a delikatniejszego
ruchu, kiedy obiekt si oddala. Mona to porwna do jazdy samochodem najblisze
otoczenie wok samochodu wyglda tak, jakby si poruszao o wiele szybciej ni, na
przykad, gry w tle. Gdy warto zmiennej dochodzi do 1 000 000, nie
nastpi prawie adne znieksztacenie. Powstanie wtedy widok ortogonalny (czyli taki,
w ktrym nie jest obecne znieksztacenie perspektywiczne). Jeli spojrzymy na nasze
otoczenie z perspektywy ortogonalnej, wwczas bdzie nas dzielia od wszystkich
obiektw jednakowa odlego.
Na razie zmiennej w ujciu 1. klipu filmowego Move3D przypisalimy warto ", wic podczas ogldania filmu nie zauwaysz znacznego znieksztacenia.
Sprbuj zmieni warto na 150, a nastpnie uruchomi film, aby zobaczy naprawd
wyrazisty efekt perspektywy. Mona nawet utworzy efekt przesuwania si obiektu
poza ekran. W tym celu przypisz zmiennej warto 15 i sprbuj powstrzyma si od uchylania, gdy obiekt bdzie zatacza ptl nad Twoj gow. Po
zmianie wartoci zmiennej modyfikacje ruchu i skalowania klipu Point s
atwo zauwaalne.
450
Cz III K ActionScript
-(
((*&
.( /-(((0
*
!
!
451
Nasza kula sprawia teraz takie wraenie, jakby obracaa si wok osi x, przybliajc si
i oddalajc podczas obrotu.
452
Cz III K ActionScript
x = 50,
x = 50,
x = 50,
x = 50,
y = 50
y = 50
y = 50
y = 50
Zamiast promienia zastosujemy wsprzdne x i y (ktre wanie zdefiniowalimy do podobnego dziaania). Nowe rwnania zostay przedstawione poniej.
453
%
&
'
%
Zmienne ! i % (jak rwnie waciwoci
i ) musimy jednak okreli dla
wszystkich punktw w systemie. Dokonamy tego, stosujc ptl wykonujc akcje, ktre
czterokrotnie zdefiniuj te wartoci. Zmienna suy do kontrolowania iloci wykonanych ptli i do udostpniania wartoci tablic
i .
&
:092##
=3'(,>?
#*>?
)(*>?
/,>?
*
>< <#?+,'(# +,
>< <#?+*)(# +*
%
%
x = 60,
x = 60,
x = 20,
x = 50,
y = 60
y = 40
y = 60
y = 30
454
Cz III K ActionScript
Po zastpieniu wartoci zdefiniowanych dla tablic
i nowymi (sample_07.fla) uzyskamy now konfiguracj punktw w systemie przypominajc ksztatem poprzedni figur.
Punkty nadal bd si jednak obraca wok klipu centerPoint z zachowaniem staych
odlegoci midzy sob. Poeksperymentuj ze zmian tych wartoci i obejrzyj rezultaty.
Nowe rwnanie dla obliczenia obrotu wok osi y zostao przedstawione poniej.
%
&
(
'
%
455
W tym wiczeniu wykorzystamy rwnie kod, ktry zdefiniuje warto zmiennej
stosowanej do okrelania waciwoci
i klipu Point. Warto zmiennej
zostanie rwnie pomnoona przez warto zmiennej ! (dajc w ten sposb
waciwo _
klipu Point).
Poniewa zmienna zalena jest od wartoci zmiennej , musimy pamita o przypisaniu zmiennej jakiej wartoci. Tak jak poprzednio umieszczamy j na pocztku skryptu w ujciu 1. Kod symulujcy obrt wok osi y dla polecenia
drawPoints zosta przedstawiony poniej (znajdziesz go rwnie w pliku sample_08.fla
na pycie CD-ROM doczonej do ksiki).
&
&
:092##
=3)
'(,>?
#5>?
-(5>?
/,>?
((*&
.( /-(((0
*
>< <#?+,'(.(# +,
>< <#?+* +*
>< <#?+,>< <#?+*.(
&>< <#?&(.(.(7
%
%
Ostatni wiersz kodu tej funkcji jest odpowiedzialny za sortowanie z (czyli okrelanie
punktw, ktre naley narysowa przed innymi podczas ich obrotu). We Flashu 4 wykonanie tej operacji byo dosy pracochonne, lecz we Flashu 5 moemy w tym celu
zastosowa wbudowan funkcj . Funkcja ta przesuwa biec kopi na nowy poziom okrelony wyraeniem +,. Im wiksza jest zatem warto zmiennej , tym na wyszy poziom w biecym stosie zostanie przesunity klon klipu
Point. Funkcja ta nie zastpuje zawartoci poziomu, do ktrego przechodzi, lecz zamienia zawartoci dwch poziomw. Jest to szczeglnie pomocne wtedy, gdy dwa punkty
posiadaj jednakow warto zmiennej .
456
Cz III K ActionScript
Obiekt trjwymiarowy
Do tego momentu obliczalimy obrt wok poszczeglnych osi oddzielnie, za kadym
razem przypisujc do obliczenia po dwie wsprzdne na punkt. Aby jednak powstaa
iluzja obracania obiektu trjwymiarowego, kademu punktowi musimy przypisa
wsprzdn x, y i z, a obliczenia dla wszystkich trzech osi naley wykona dla kadego
punktu. Poniszy rysunek ilustruje sytuacj, w ktrej do wytoczenia dwuwymiarowego kwadratu w celu wygenerowania szecianu musimy zastosowa cztery dodatkowe punkty i do kadego z nich przypisa wsprzdn z.
x = 50,
x = 50,
x = 50,
x = 50,
x = 50,
x = 50,
x = 50,
x = 50,
y = 50,
y = 50,
y = 50,
y = 50,
y = 50,
y = 50,
y = 50,
y = 50,
z = 50
z = 50
z = 50
z = 50
z = 50
z = 50
z = 50
z = 50
Zamiast wykonywa obliczenia dla obrotu wok pojedynczej osi (tak jak to robilimy
do tej pory z zastosowaniem funkcji
), dokonamy oblicze dla wszystkich
457
trzech osi jednoczenie. Z tego wzgldu musimy wprowadzi trzy nowe zmienne, ktre
bd kontroloway kt obrotu wok kadej osi. Nazwiemy je !
, %
i
i zastpimy nimi ogln zmienn
(ktr stosowalimy do tej pory).
Zmienna !
bdzie reprezentowa kt obrotu wok osi x, zmienna %
wok
osi y, a zmienna
wok osi z. Nowy zestaw rwna mona zatem podzieli na
trzy czci. Wszystkie rwnania zostay przedstawione poniej.
Obrt wok osi x:
)*
+,
&
+,
()*
+,
'
+,
W tych rwnaniach zmienne !-$, %-$ i -$ su jako tymczasowe
zmienne stosowane w miejsce zmiennych
, i . (w celu uzyskania dostpu do wartoci
zmiennych !, % i ).
Po przypisaniu wartoci zmiennym !, % i do powyszych rwna dodamy kod
definiujcy zmienn . Nowe pozycje punktw zostan narysowane na ekranie za
pomoc pomnoenia wartoci zmiennej przez wartoci zmiennych ! i %
oraz przy uyciu okrelenia waciwoci
kadego punktu w taki sam sposb jak
w poprzednim przykadzie. W tym przypadku rwnie zastosowalimy zmienn do
okrelenia waciwoci
i dla kadego klonu Point.
Skrypt tworzcy funkcj
zosta przedstawiony poniej (oraz w pliku sample_10.fla).
&
&
:092##
=3'
)(+@2(*>?'
#5>?'
-(+@2(5>?'
/*>?'
=3)
'(+@2(,>?)
#-(+@2()
-(-(+@2()
/,>?)
=3'('(+@2(-
#) +@2(-
)()(+@2(-
/'(+@2(-
((*&
.( /-(((0
458
Cz III K ActionScript
*
>< <#?+,'(.(# +,
>< <#?+*)(.(# +*
>< <#?+,>< <#?+*.(
&>< <#?&(.(.(7
%
%
Pamitaj, e w celu utworzenia efektw trjwymiarowych nie zawsze konieczne jest obliczanie obrotu wok wszystkich trzech osi. Czasami niezbdne jest obrcenie obiektu wok
osi z, lecz te nie zawsze jest to konieczne. Oglnie mwic czasami warto ogranicza
kod stosowany we Flashu. Wystarczy, abymy obliczyli tylko obroty wok osi x i y.
Obrt wok osi x:
&
(
'
Dziki temu nie bd ju nam potrzebne dodatkowe zmienne tymczasowe (patrz plik
sample_11.fla). Dla potrzeb tego wiczenia nadal jednak bdziemy korzysta z rwna
obliczajcych obrt wok wszystkich trzech osi.
Aby przej z pliku sample_09.fla do sample_10.fla, musimy zmieni funkcj
w celu zdefiniowania wartoci zmiennych wszystkich trzech ktw (!
, %
i
). Dokonamy tego, trzykrotnie powielajc istniejcy skrypt (zmieniajc tylko
nazwy zmiennych).
'
'
! "
)
)
! "
-
-
! "
'
'
#$
)
)
#$
-
-
#$
%
Wartoci dodawane do zmiennej na kocu kodu okrelaj to, o ile kada o ma si
obrci. Na przykad warto 0 zatrzyma szecian w miejscu, a warto ujemna spowoduje
obracanie si obiektu w przeciwnym kierunku. Oczywicie wartoci te mona definiowa,
stosujc inne wyraenia. Aby na przykad obrci obiekt w zalenoci od ruchu myszy, moemy zastosowa poniszy skrypt (umieszczony rwnie w pliku sample_12.fla).
'
'
! "
)
)
! "
-
-
! "
*
!,
+ ,
459
Ustawienie stopni ! i % na biec lokalizacj kursora myszy jest najprostszym sposobem uzyskania omawianego efektu, lecz moemy take zastosowa bardziej
skomplikowane skrypty, jeli chcemy otrzyma inny rodzaj ruchu czy interakcji.
W ten sposb dotarlimy do ostatniego etapu projektu. Na razie utworzylimy w systemie 8 punktw poruszajcych si wok punktu rodkowego. Aby nada obiektowi okrelony ksztat, punkty poczymy liniami. W tym celu utworzymy kolejn funkcj o nazwie
/
, ktra bdzie kreowa ptl dla umieszczanych linii. Do poczenia punktw
w celu utworzenia szecianu bdziemy potrzebowali dwanacie linii. We Flashu nie
moemy niestety definiowa wsprzdnych poszczeglnych punktw linii za pomoc
jzyka ActionScript. Musimy znale na to jaki inny sposb.
Zastosujemy klip filmowy zawierajcy pojedyncz ukon lini. Zeskalujemy j poziomo i pionowo midzy punktami, ktre maj zosta poczone. Wartoci zmiennych
, i zastosowanych w filmie musz by identyczne, aby jego
punkty kocowe odpowiaday punktom przeznaczonym do poczenia. Innymi sowy
rozmiar klipu filmowego powinien wynie 100 na 100 jednostek. Oznacza to, e jeli znamy odlego pomidzy dwoma punktami i chcemy nada linii w klipie filmowym odpowiedni dugo, wystarczy ustawi wartoci waciwoci klipu filmowego na t odlego.
Aby utworzy taki klip filmowy, narysuj ukon lini biegnc w d od lewej do prawej strony pod katem 45. W panelu Info ustaw wartoci X i Y na 0 tak, aby grny lewy
koniec linii sta si rodkiem klipu filmowego. Ustaw szeroko i wysoko na 100.
460
Cz III K ActionScript
Aby skrypt odpowiedzialny za czenie wszystkich linii uzyska informacj, ktre punkty
naley poczy, przygotujemy dla kadej linii list punktw przeznaczonych do poczenia. Dokonamy tego, przypisujc do kadej z linii zmienne o nazwie /
X0
i /
X1
, gdzie X oznacza liczb, ktr dodamy do nazwy kadego klipu filmowego
w ostatnim fragmencie kodu. Kompletna lista zostaa przedstawiona poniej.
12*2
A
B
8A
C
A B
8A C$
A$B 8A$CD
ADB$8ADCD
AEB
8AECE
A7B 8A7C7
AFB$8AFCF
AGBD8AGCG
A"BG8A"CF
AHBG8AHC7
A
B78A
CE
A BF8A CE
Dla linii /
punktem zakotwiczenia bdzie zatem punkt
(/
0), a zostanie ona rozcignita do punktu
" (/
1
). Linia /
" zostanie poczona od
punktu
do
i tak dalej. Pierwsze cztery linie wyglda bd tak jak na poniszym rysunku.
461
&A
&A
:92##
><A<#?+,>< <#><A<##<B<??+,
><A<#?+*>< <#><A<##<B<??+*
><A<#?+,>< <#><A<##<C<??+,/
>< <#><A<##<B<??+,
><A<#?+*>< <#><A<##<C<??+*/
>< <#><A<##<B<??+*
%
%
W tym skrypcie wartoci waciwoci
i kadej linii s rwne wartociom waciwoci
i punktu reprezentujcego punkt pocztkowy linii (/
X0). Powyszy
kod skaluje lini, stosujc rnic midzy wartociami waciwoci
i dwch
punktw przez ni poczonych. Cay mechanizm dziaa poprawnie. Jeli zeskalujemy jaki element za pomoc ujemnych wartoci, odbijemy go przez jego o. Zatem w celu uzyskania klipu Line przedstawionego na poniszym rysunku
462
Cz III K ActionScript
W ten sposb zakoczylimy konstrukcj podstawowego programu do tworzenia obiektw
3D, ktr moesz zastosowa w innych projektach. Ukoczony model znajduje si w pliku
sample_13.fla na pycie CD-ROM doczonej do ksiki.
Zakoczenie
Teraz poeksperymentuj, pozmieniaj wsprzdne poszczeglnych punktw i przekonaj
si, w jaki sposb zmiany te wpyn na model. Sprbuj rwnie umieci dodatkowe
punkty w systemie, zmieniajc warto zmiennej #$ i okreli dla nich pocztkowe wsprzdne. Stosunkowo atwym zadaniem bdzie przeksztacenie tego modelu
w system dynamiczny, w ktrym uytkownik bdzie mg kontrolowa gbi lub liczb punktw za pomoc wejciowego pola tekstowego (lub przyciskami plus i minus)
i obserwowa zmiany zachodzce w czasie rzeczywistym.
Pamitaj, e wsprzdne nie musz by statyczne. Najwiksz zalet tego systemu jest
to, e mona w nim resetowa pozycje punktw po kadej wykonanej ptli systemu
(mniej wicej w taki sam sposb, w jaki okrelalimy zmienne odpowiedzialne za definiowanie ktw obrotu). Daje to moliwo przesuwania punktw w obrbie systemu,
a to z kolei stanowi podstaw, na ktrej zostay zrealizowane projekty omwione na pocztku tego rozdziau.