Transcript
Page 1: Flash CS3 Professional PL. Techniki zaawansowane. Klatka po klatce

Wydawnictwo Helionul. Ko�ciuszki 1c44-100 Gliwicetel. 032 230 98 63e-mail: [email protected]

Flash CS3 Professional PL.Techniki zaawansowane.Klatka po klatceAutor: Russell ChunT³umaczenie: Joanna PasekISBN: 978-83-246-1342-7Tytu³ orygina³u: Flash CS3 ProfessionalAdvanced for Windows and Macintosh:Visual QuickPro GuideFormat: 168x237, stron: 530

Odkryj najg³êbiej strze¿one tajemnice Flasha

� Jak tworzyæ rozbudowane animacje?� W jaki sposób kontrolowaæ obiekty, wykorzystuj¹c ActionScript?� Jak pobieraæ dane z zewnêtrznych �róde³?

Flash CS3 Professional to kolejne wcielenie narzêdzia, które zyska³o uznaniedziesi¹tek tysiêcy twórców witryn WWW. Jednak jego niesamowite mo¿liwo�ciw zakresie tworzenia grafiki i animacji to tylko wierzcho³ek góry lodowej. Swoj¹ prawdziw¹ potêgê Flash ujawnia, gdy siêgniemy po rozwi¹zania oparte na wbudowanym, obiektowym jêzyku programowania nosz¹cym nazwê ActionScript 3.0. Za jego pomoc¹ mo¿emy kontrolowaæ niemal ka¿dy aspekt animacji i wszystkie obiekty wchodz¹ce w jej sk³ad, sterowaæ wy�wietlaniem i pobieraniem danych oraz odtwarzaniem d�wiêku. Jeste�my w stanie wykreowaæ niesamowite efekty, jakich nigdy nie uzyskaliby�my, wykorzystuj¹c inne techniki. W ksi¹¿ce �Flash CS Professional PL. Techniki zaawansowane. Klatka po klatce" opisano techniki tworzenia animacji zwi¹zaneze stosowaniem jêzyka ActionScript. Czytaj¹c j¹, poznasz podstawy tego jêzyka, a tak¿e dowiesz siê, w jaki sposób pisaæ skrypty i do jakich obiektów je do³¹czaæ. Nauczysz siê kontrolowaæ elementy graficzne, d�wiêkowe, tekstowe i nawigacyjne umieszczonew prezentacji za pomoc¹ poleceñ ActionScriptu. Opanujesz sposoby ³¹czenia witryn WWW tworzonych we Flashu z zewnêtrznymi plikami, przegl¹dark¹ internetow¹i serwerem, na którym s¹ publikowane. Znajdziesz tu tak¿e informacje o wykrywaniu b³êdów w skryptach i ich usuwaniu.

� Animacje poklatkowe i automatyczne� Animowane maski� Rotoskopia� Edycja kodu ActionScript w panelu Actions� Tworzenie funkcji � Obs³uga zdarzeñ w animacji� Zarz¹dzanie listwami czasowymi� Tworzenie elementów nawigacyjnych� Pobieranie plików multimedialnych z zewnêtrznych �róde³� Przetwarzanie elementów graficznych i d�wiêkowych oraz danych tekstowych� Operacje matematyczne we Flashu� Optymalizacja filmów

Odkryj zapieraj¹ce dech w piersiach mo¿liwo�ci synergii Flasha i jêzyka ActionScript!

Page 2: Flash CS3 Professional PL. Techniki zaawansowane. Klatka po klatce

5

Spis tre�ci

Spis tre�ci

Wst�p 9

Cz��� I Zaawansowane animacje 13Rozdzia� 1. Tworzenie z�o�onych projektów 15

Automatyczna animacja ruchu ................................................................................ 16Automatyczna animacja kszta�tu ............................................................................. 28Efekty specjalne ...................................................................................................... 33Animowane i z�o�one maski .................................................................................... 38

Rozdzia� 2. Praca z wideo 49Osadzanie plików wideo we Flashu ....................................................................... 50Zewn�trzne pliki wideo; stopniowe pobieranie filmów w trakcie odtwarzania ...... 59Rotoskopia ............................................................................................................... 65

Cz��� II Interaktywno�� 67

Rozdzia� 3. Pos�ugiwanie si� j�zykiem ActionScript 69Co kryje nazwa ActionScript 3.0? .......................................................................... 70Obiekty i klasy ......................................................................................................... 71Metody i w�a�ciwo�ci .............................................................................................. 72U�ywanie notacji kropkowej ................................................................................... 73Wi�cej na temat interpunkcji ................................................................................. 75Panel Operacje ........................................................................................................ 76Edycja kodu ActionScript ....................................................................................... 85U�ywanie obiektów ................................................................................................. 88Funkcje .................................................................................................................... 97Stosowanie komentarzy ......................................................................................... 101

Rozdzia� 4. Wi�cej o przyciskach i obs�udze zdarze� 103Odbieranie zdarze� ............................................................................................... 104Obs�uga myszy ....................................................................................................... 106Klasa SimpleButton ............................................................................................... 110Niewidoczne przyciski .......................................................................................... 114Animowane przyciski a klipy filmowe .................................................................. 116Z�o�one przyciski ................................................................................................... 119Mo�liwo�ci �ledzenia przycisków ......................................................................... 123Zmiana zachowania przycisku .............................................................................. 126

Spis tre�ci

Page 3: Flash CS3 Professional PL. Techniki zaawansowane. Klatka po klatce

Spis tre�ci

6

Spis

tre

�ci

Dynamiczne tworzenie przycisków ......................................................................... 129Obs�uga klawiatury ................................................................................................ 131Menu podr�czne ................................................................................................... 134Tworzenie powtarzaj�cych si� akcji ..................................................................... 140Obiekt Timer ......................................................................................................... 141Podsumowanie zdarze� ........................................................................................ 144

Rozdzia� 5. Praca z wieloma listwami czasowymi 145Nawigowanie listwami czasowymi klipów filmowych ........................................ 146�cie�ki adresowe ................................................................................................... 147Bezwzgl�dne i wzgl�dne �cie�ki adresowe ......................................................... 151U�ywanie akcji with do adresowania klipów filmowych ..................................... 153Klipy filmowe jako kontenery ............................................................................... 155Etykiety uj� .......................................................................................................... 159

Rozdzia� 6. Zarz�dzanie komunikacj� zewn�trzn� 163Komunikowanie si� przez przegl�dark� internetow� ......................................... 164�adowanie zewn�trznych filmów Flasha ............................................................. 180Kontrolowanie za�adowanych filmów Flasha ...................................................... 185�adowanie zewn�trznych obrazów ...................................................................... 190Komunikacja z zewn�trznym wideo .................................................................... 193Stosowanie projektorów i akcji fscommand ......................................................... 200Komunikowanie si� z drukark� ............................................................................ 203Wykrywanie pobierania danych z sieci — wska�niki post�pu �adowania ......... 212

Cz��� III Sterowanie grafik� i dwi�kiem 221Rozdzia� 7. Sterowanie grafik� 223

Lista wy�wietlania ................................................................................................. 224Zmiana w�asno�ci obiektu graficznego ................................................................. 225Skalowanie i zniekszta�canie obiektów ................................................................ 232Zmiana koloru ........................................................................................................ 236Mieszanie kolorów ................................................................................................ 242U�ycie filtrów do tworzenia efektów specjalnych ............................................... 245Przeci�ganie i upuszczanie obiektów ................................................................... 248Wykrywanie kolizji obiektów ............................................................................... 252Dynamiczne tworzenie obiektów ........................................................................... 255Kontrolowanie kolejno�ci nak�adania obiektów .................................................. 258Dynamiczne tworzenie kszta�tów ......................................................................... 261Dynamiczne maski ................................................................................................ 278Dostosowanie wygl�du wska�nika myszy ............................................................ 284Podstawy animacji za pomoc� j�zyka ActionScript ............................................. 286Obrazy bitmapowe ................................................................................................ 291Tworzenie bitmap i dost�p do nich ...................................................................... 292

Page 4: Flash CS3 Professional PL. Techniki zaawansowane. Klatka po klatce

Spis tre�ci

7

Spis tre�ci

Edycja bitmap ........................................................................................................ 298U�ywanie filtrów do modyfikacji bitmap ............................................................. 308Animowanie bitmap .............................................................................................. 311

Rozdzia� 8. Sterowanie dwi�kiem 315Wprowadzanie d�wi�ków ..................................................................................... 316Odtwarzanie d�wi�ków z biblioteki ..................................................................... 317Wczytywanie i odtwarzanie zewn�trznych d�wi�ków ........................................ 319Sterowanie odtwarzaniem d�wi�ków ................................................................... 321Modyfikacja nat��enia i balansu d�wi�ku ............................................................ 325Wykrywanie zdarze� d�wi�ku .............................................................................. 330Wykorzystanie znaczników informacyjnych plików MP3 .................................. 332Wizualizacja d�wi�ku ............................................................................................ 335Tworzenie dynamicznego sterowania d�wi�kiem ............................................... 338

Cz��� IV Przetwarzanie informacji 343Rozdzia� 9. Sterowanie przep�ywem informacji 345

Zmienne i wyra�enia ............................................................................................. 346Wczytywanie zewn�trznych zmiennych .............................................................. 350Przechowywanie i wspó�dzielenie informacji ...................................................... 359Modyfikacja zmiennych ........................................................................................ 365Dynamiczne generowanie nazw zmiennych za pomoc� wyra�e� ...................... 367Testowanie informacji za pomoc� instrukcji warunkowych ................................. 369Alternatywa dla instrukcji warunkowej ................................................................ 374Rozga��zione instrukcje warunkowe .................................................................... 376��czenie warunków z operatorami logicznymi ................................................... 380P�tle ....................................................................................................................... 382

Rozdzia� 10. Tekst 387Wej�ciowe pole tekstowe ...................................................................................... 388Dynamiczne pole tekstowe ................................................................................... 390Opcje pól tekstowych ............................................................................................ 392Wy�wietlanie tekstu w formacie HTML .............................................................. 395W�a�ciwo�ci klasy TextField ................................................................................. 400Dynamiczne generowanie pól tekstowych .......................................................... 410Edycja tekstu w polach tekstowych ..................................................................... 412Formatowanie pól tekstowych z wykorzystaniem zewn�trznych

arkuszy stylów ..................................................................................................... 422Wykrywanie aktywnego pola tekstowego ............................................................ 426Uaktywnianie pól tekstowych i zaznaczanie tekstu w polach tekstowych ......... 429Analiza tekstu ......................................................................................................... 431Aran�acja tekstów .................................................................................................. 441

Page 5: Flash CS3 Professional PL. Techniki zaawansowane. Klatka po klatce

Spis tre�ci

8

Spis

tre

�ci

Rozdzia� 11. Przetwarzanie informacji 445Obliczenia przy u�yciu klasy Math ...................................................................... 446Wyliczanie k�tów .................................................................................................. 447Tworzenie ukierunkowanego ruchu ..................................................................... 456Obliczanie odleg�o�ci ............................................................................................ 460Generowanie liczb losowych ................................................................................ 462Przechowywanie informacji w tablicach .............................................................. 463Obs�uga obiektów umieszczonych w tablicy ....................................................... 470Data i czas .............................................................................................................. 475

Rozdzia� 12. Zarz�dzanie zawarto�ci� i usuwanie b��dów 483Wspó�dzielenie symboli z biblioteki .................................................................... 484Wspó�dzielenie czcionek ...................................................................................... 491Do��czanie zewn�trznego kodu ActionScript ..................................................... 494Panel Eksplorator filmu ........................................................................................ 497�ledzenie zmiennych w panelu Wyj�cie .............................................................. 501Okre�lanie typu zmiennej ..................................................................................... 503Optymalizacja filmu .............................................................................................. 504Unikanie typowych b��dów .................................................................................. 508

Dodatek A Klawisze i odpowiadaj�ce im kody 509

Skorowidz 511

Page 6: Flash CS3 Professional PL. Techniki zaawansowane. Klatka po klatce

315

Rozdzia� 8. Sterowanie dwi�kiem

Wprowadzenie d�wi�ku do filmu Flasha wzbogaca dowoln� animacj� lub nawet najprostszyprojekt interaktywny, poniewa� anga�uje si� wi�cej zmys�ów u�ytkownika. Muzykaodtwarzana w tle wprowadza w odpowiedni nastrój, narracja u�atwia opowiedzeniehistoryjki, a d�wi�ki odtwarzanie na przyk�ad po klikni�ciu przycisku lub przy przeci�ganiuobiektów po scenie dostarczaj� dodatkowych informacji. Flash obs�uguje kilka formatówzapisu d�wi�ku, przede wszystkim formaty WAV, AIF i MP3. Pozwalaj� one korzystaz bardzo szerokiego spektrum d�wi�ków. Dodatkowo Flash potrafi dynamicznie �adowazewn�trzne pliki MP3 w trakcie odtwarzania filmu, co pozwala bez trudu tworzy filmyzawieraj�ce du�� ilo� d�wi�ku.

W tym rozdziale zajmiemy si� d�wi�kiem i klasami, które s� przeznaczone do jego obs�ugi:klas� Sound, SoundChannel, SoundMixer, SoundTransform oraz SoundEvent. Dowiesz si�, jak przyu�yciu klasy Sound odtwarza d�wi�ki z biblioteki bez potrzeby umieszczania ichw klatkach kluczowych. Nauczysz si� obs�ugiwa d�wi�ki znajduj�ce si� w zewn�trznychplikach, a tym samym wydajnie zarz�dza filmami Flasha i odtwarzan� w nich muzyk�.Z poziomu kodu ActionScript mo�na rozpocz� odtwarzanie d�wi�ku, zatrzyma je,zmieni g�o�no� lub balans. W ten sposób mo�na dynamicznie reagowa na dzia�aniau�ytkownika lub animacj�. Dowiesz si� równie�, w jaki sposób wykorzysta w�a�ciwo�cii zdarzenia klasy Sound, by zapewni synchronizacj� d�wi�ku z animacj� lub z innymid�wi�kami.

Wszystkie te narz�dzia s�u�� do tego, by zapewni elastyczny i skuteczny system integracjid�wi�ku z filmami Flasha. Mo�na na przyk�ad wykona suwak zapewniaj�cy zmian�g�o�no�ci lub uzale�ni odtwarzan� muzyk� od aktualnego przebiegu gry. Mo�na wykonapokaz slajdów zsynchronizowany z muzyk�, a nawet w�asny odtwarzacz plików MP3.

Sterowanie dwi�kiem 8Sterow

anie dwi�kiem

Page 7: Flash CS3 Professional PL. Techniki zaawansowane. Klatka po klatce

Rozdzia� 8.

316

Wprowadzanie dwi�kówJest kilka sposobów do��czania d�wi�ków do filmuFlasha. Najprostszym z nich jest zaimportowanied�wi�ku i r�czne umieszczenie go w klatcekluczowej. Na listwie czasowej wy�wietlana jestwtedy graficzna reprezentacja fali d�wi�kowej,która pomaga si� nam zorientowa, kiedy d�wi�kzaczyna by odtwarzany, a kiedy si� ko�czy(rysunek 8.1). Drugi sposób to zaimportowad�wi�k i odtworzy go dynamicznie w trakcietrwania filmu. Dopóki nie zarz�dzisz odtworzeniatakiego d�wi�ku za pomoc� ActionScript, pozostajeon w bibliotece (rysunek 8.2). Trzeci sposóbpolega na dynamicznym za�adowaniu i odtworzeniud�wi�ku zapisanego w pliku zewn�trznym(rysunek 8.3). Ten rozdzia� jest po�wi�conydrugiej i trzeciej z wymienionych metod.Odtwarzaj�c d�wi�k dynamicznie, mo�emysterowa momentem jego pojawienia si�i g�o�no�ci� (tak�e oddzielnie dla lewego i prawegog�o�nika) oraz pobiera informacje na tematpost�pu �adowania lub post�pu odtwarzaniaplików d�wi�kowych.

Ka�dy d�wi�k odtwarzany z poziomu ActionScriptwymaga utworzenia dla niego egzemplarza klasySound. Maj�c taki egzemplarz, mo�emyzastosowa dla niego metod� play(), by odtworzyd�wi�k. W trakcie powstaje egzemplarz klasySoundChannel, wyposa�ony we w�asno�ci, dzi�kiktórym mo�emy sterowa d�wi�kiem. Jedn�z tych w�asno�ci jest obiekt SoundTransform, którypozwala kontrolowa globalne nat��enie d�wi�kuoraz jego balans, czyli rozk�ad g�o�no�ci na prawyi lewy g�o�nik.

Rysunek 8.1. Umieszczenie dwi�ku w klatcekluczowej na listwie czasowej to najprostszysposób do��czenia dwi�ku do filmu,niewymagaj�cy u�ycia ActionScript

Rysunek 8.2. Dwi�ki zaimportowane do bibliotekimog� by� odtwarzane w trakcie odtwarzania filmutak�e bez umieszczania ich na listwie czasowej,je�li u�yjemy ActionScript

Rysunek 8.3. Oddzielny plik dwi�kowy MP3mo�e zosta� za�adowany do filmu Flasha (SWF)i odtworzony za pomoc� ActionScript

Wpr

owad

zani

e d

wi�

ków

Page 8: Flash CS3 Professional PL. Techniki zaawansowane. Klatka po klatce

Sterowanie d�wi�kiem

317

Odtwarzanie dwi�kówz bibliotekiMo�esz zaimportowa wszystkie potrzebned�wi�ki do biblioteki podczas pracyw �rodowisku edycyjnym Flasha, a potemodtwarza je w odpowiednich momentachw trakcie odgrywania filmu. Wymaga to jednakudost�pnienia symboli d�wi�kowych z biblioteki�rodowisku ActionScript. Robimy to tak samo,jak w przypadku symboli graficznych.W rozdziale 7. procedura ta zosta�a opisanadla symboli klipów filmowych oraz symbolibitmap. Polega to na utworzeniu nowej klasydla symbolu, b�d�cej rozszerzeniem jednejz ju� istniej�cych klas, dzi�ki czemu mo�emytworzy nowe egzemplarze danego symboludynamicznie, za pomoc� funkcji konstruktora.W przypadku symboli d�wi�kowych b�dziemykorzysta z rozszerze� klasy Sound. Nazw�tworzonej klasy mo�na ustali w oknieW�a�ciwo�ci po��czenia, po wybraniupolecenia ��czenie z menu opcji paneluBiblioteka.

Rysunek 8.4. Wybierz polecenie ��czenie z menuopcji panelu Biblioteka dla ka�dego symboludwi�kowego, który chcesz kontrolowa�z poziomu ActionScript

Aby przygotowa� symbol dwi�kowyz biblioteki do odtwarzania z ActionScript:

1. Zaimportuj do Flasha plik d�wi�kowy,wybieraj�c polecenie Plik/Importuj/Importujdo biblioteki i otwieraj�c plik d�wi�kowy.

Wybrany plik d�wi�kowy pojawi si�w bibliotece filmu. Masz do wyborunast�puj�ce formaty pliku d�wi�kowego:WAV (dla Windows) AIF (Mac OS) oraz MP3(Windows i Mac OS). Wi�cej formatów mo�eby dost�pnych, gdy masz zainstalowanyprogram QuickTime na swoim komputerze.

2. Zaznacz symbol d�wi�kowy w paneluBiblioteka.

3. Z menu opcji panelu Biblioteka wybierzpolecenie ��czenie (rysunek 8.4).

Pojawia si� okno dialogowe W�a�ciwo�cipo��czenia.

4. W polu ��czenie zaznacz opcj� Eksportujdla ActionScript. Pozostaw w��czon� opcj�Eksport w pierwszej klatce.

5. W polu tekstowym Klasa wpisz nazw� klasy.Dzi�ki tej nazwie b�dziesz móg� zidentyfikowadany d�wi�k w ActionScript. W polu Klasabazowa pozostaw klas� flash.media.Sound.Kliknij OK (rysunek 8.5).

Rysunek 8.5. Dla symbolu dwi�kowego zosta�autworzona nowa klasa GuitarLoop, dziedzicz�cametody i w�asno�ci klasy Sound

Odtw

arzanie dwi�ków

z biblioteki

Page 9: Flash CS3 Professional PL. Techniki zaawansowane. Klatka po klatce

Rozdzia� 8.

318

Mo�e pojawi si� okno dialogowe z ostrze�eniem,�e klasa o takiej nazwie nie zosta�a znaleziona,b�dzie wi�c musia�a zosta utworzona (rysunek8.6). Kliknij OK. W naszym przyk�adzie nazwanowej klasy to GuitarLoop. Jest ona cz��ci�istniej�cej klasy Sound, a wi�c dziedziczy wszystkiew�asno�ci i metody klasy Sound. Nazwa nowejklasy b�dzie wykorzystywana przy tworzeniunowych egzemplarzy tego konkretnego d�wi�kuw ActionScript. Upewnij si�, �e nazwa klasy niezawiera kropek.

Aby odtworzy� dwi�k z biblioteki:

1. Kontynuuj prac� nad plikiem z poprzedniegowiczenia. Zaznacz pierwsz� klatk� na g�ównejlistwie czasowej i otwórz panel Operacje.

2. W pierwszej linii utwórz nowy egzemplarzswojego symbolu d�wi�kowego, pos�uguj�csi� nazw� klasy, któr� dla niego utworzy�e�:

var mySound:GuitarLoop = new�GuitarLoop();

Zostaje utworzony nowy egzemplarz obiektuSound, zawieraj�cy wybrany d�wi�kz biblioteki.

3. Wpisz nazw� nowego egzemplarza Sound,kropk�, a potem metod� play() (rysunek 8.7).

D�wi�k zaczyna by odtwarzany.Po jednokrotnym odtworzeniu d�wi�kuodtwarzanie zostanie wstrzymane.

Wskazówka

� Metoda play()odtwarza egzemplarz d�wi�kuprzy ka�dym wywo�aniu, nawet gdy ten samd�wi�k ju� jest odtwarzany. To oznacza,�e mo�emy mie wiele nak�adaj�cych si�d�wi�ków w tym samym momencie filmu.Aby zapobiec tej sytuacji, u�yj metodystopAll() klasy SoundMixer, zanim zarz�dziszpowtórne odtworzenie d�wi�ku. Ta technikagwarantuje, �e d�wi�k ucichnie, zanim zacznieby odtwarzany od pocz�tku.

Rysunek 8.6. Kliknij OK, by zamkn�� to okienkoze zb�dnym ostrze�eniem. Informuje Ci� ono,�e zostanie utworzona nowa klasa

Rysunek 8.7. Zostaje utworzony nowy egzemplarzklasy GuitarLoop, o nazwie mySound („mójdwi�k”). Egzemplarz ten mie�ci w sobie dwi�kz biblioteki filmu. Nast�pnie metoda play() zostajeu�yta do odtworzenia tego dwi�ku

Odt

war

zani

e d

wi�

ków

z b

iblio

teki

Page 10: Flash CS3 Professional PL. Techniki zaawansowane. Klatka po klatce

Sterowanie d�wi�kiem

319

Wczytywanie i odtwarzaniezewn�trznych dwi�kówZa ka�dym razem, gdy importujesz d�wi�kdo biblioteki filmu, zwi�ksza si� rozmiarwynikowego pliku SWF. D�wi�ki mog� zajmowabardzo du�o miejsca, nawet w przypadkustosowania kompresji MP3, wi�c warto zastanowisi� nad przechowywaniem ich osobno. Najpro�ciejmo�na to zrobi, umieszczaj�c ka�dy d�wi�kw zewn�trznym pliku. Metoda load() wczytujedo filmu pliki MP3 (pozosta�e formaty nie s�dost�pne). Takie podej�cie umo�liwia podmian�pliku d�wi�kowego bez potrzeby edycjidokumentu Flasha. Wyobra� sobie, �e podk�admuzyczny filmu zapisa�e� w pliku audio1.mp3.Aby zmieni muzyk� na inn�, wystarczy zast�piplik audio1.mp3 innym plikiem, nadaj�c mu t�sam� nazw�; Flash zacznie odtwarza nowy d�wi�k.

Metoda load() wymaga podania tylko jednegoparametru. Jest nim obiekt URLRequest, któryzawiera �cie�k� dost�pu do pliku MP3.

Aby za�adowa� i odtworzy�zewn�trzny dwi�k:

1. Zadeklaruj i zainicjalizuj obiekt URLRequestza pomoc� funkcji konstruktora newURLRequest(). Jako parametr wpisz �cie�k�do pliku MP3, którego chcesz u�y(rysunek 8.8).

Rysunek 8.8. Obiekt URLRequest definiuje �cie�k�adresow� pliku, który chcesz za�adowa�. W tym przypadkujest to plik dwi�kowy music.mp3, umieszczony w tym samymkatalogu, w którym znajduje si� film Flasha

Wczytyw

anie i odtwarzanie dw

i�ków

Page 11: Flash CS3 Professional PL. Techniki zaawansowane. Klatka po klatce

Rozdzia� 8.

320

�cie�ka dost�pu jest podawana w formie ci�guznaków, musisz wi�c uj� j� w cudzys�ów.Mo�esz za�adowa plik MP3 z w�asnegodysku lub z internetu, u�ywaj�c adresubezwzgl�dnego. Je�li plik MP3 znajduje si�w tym samym katalogu, w którym jest filmFlasha, wystarczy poda jego nazw�.

2. Zadeklaruj i zainicjalizuj obiekt Soundza pomoc� funkcji konstruktora new Sound()(rysunek 8.9).

3. W kolejnej linii wpisz nazw� obiektu Sound,kropk�, a potem metod� load(). U�yj obiektuURLRequest jako parametru tej metody.

4. W kolejnej linii wpisz nazw� swojego obiektuSound, kropk� i metod� play(). Mo�esz u�ydodatkowych parametrów (nie jestto obowi�zkowe), by okre�li pocz�tekodtwarzania lub liczb� powtórze�(rysunek 8.10).

Gdy tylko film Flasha zostanie uruchomiony,wczyta plik MP3 i odtworzy go.

5. Zapisz plik Flasha w tym samym katalogu,w którym znajduje si� plik MP3. Przetestuj film.

Zaraz po rozpocz�ciu odtwarzania filmu Flashodszukuje zewn�trzny plik MP3 za pomoc�obiektu URLRequest, �aduje go i odtwarzarównolegle z filmem.

Rysunek 8.9. W drugiej linii kodu tworzymy obiekt klasySound o nazwie mySound

Rysunek 8.10. Metoda load() pobiera plik dwi�kowyz miejsca wskazanego przez obiekt URLRequest, a metodaplay() go odtwarza

Wcz

ytyw

anie

i od

twar

zani

e d

wi�

ków

Page 12: Flash CS3 Professional PL. Techniki zaawansowane. Klatka po klatce

Sterowanie d�wi�kiem

321

Sterowanieodtwarzaniem dwi�kówMetoda play() obiektu Sound przyjmuje trzyopcjonalne parametry. Pierwszy z nichto parametr przesuni�cia w czasie. Jest to liczbaoznaczaj�ca, ile milisekund nagrania, licz�cod pocz�tku trwania d�wi�ku, zostaniepomini�tych. Odtwarzanie d�wi�ku mo�narozpocz� od samego pocz�tku lub od dowolnegopó�niejszego punktu. Gdy d�wi�k trwa 20 sekund,nic nie stoi na przeszkodzie, by rozpocz�odtwarzanie od jego �rodka, czyli od 10.sekundy; wystarczy u�y metody play(10000).Nie jest to opó�nienie rozpocz�cia odtwarzaniao 10 sekund, ale natychmiastowe odtworzenieod 10. sekundy.

Drugi parametr okre�la liczb� odtworze�d�wi�ku. Przekazanie warto�ci 2 spowodujeodtworzenie d�wi�ku dwukrotnie bez �adnychprzerw mi�dzy kolejnymi uruchomieniami.Wielokrotne powtarzanie (zap�tlenie) jest zwyklestosowane dla d�wi�ków tak przygotowanych,by ich koniec pasowa� do pocz�tku,tak �e moment przeskoku pomi�dzy ko�cema pocz�tkiem nagrania jest niezauwa�alny.

Trzecim parametrem metody play() jest obiektSoundTransform. Zapewnia on kontrol� nadogóln� g�o�no�ci� d�wi�ku oraz nad balansemg�o�no�ci pomi�dzy lewym a prawym g�o�nikiem.Obiekt SoundTransform zostanie dok�adniejopisany w dalszej cz��ci rozdzia�u.

Je�li w momencie wywo�ywania metody play()nie przeka�e si� �adnych parametrów, Flashodtworzy d�wi�k jednokrotnie od samegopocz�tku.

Aby odtworzy� dwi�kod wybranego punktu:

� U�yj dla metody play() obiektu Soundpierwszego z jej parametrów, podaj�cwarto� wyra�on� w milisekundach.

D�wi�k b�dzie odtwarzany od tegopunktu w czasie (licz�c w milisekundach;rysunek 8.11).

Aby ustali� liczb� powtórze�:

� U�yj dla metody play() obiektu Sounddrugiego z jej parametrów, podaj�c liczb�powtórze�.

D�wi�k b�dzie odtwarzany tyle razy, ile sobieza�yczy�e� (rysunek 8.12).

Wskazówki

� Niestety, nie istnieje sposób, by poinformowametod� play() o ch�ci niesko�czonegozap�tlenia d�wi�ku. W takiej sytuacji jakowarto� parametru zap�tlenia mo�eszprzekaza bardzo du�� warto�, na przyk�ad99999.

Rysunek 8.11. W tym przyk�adzie dla metody play() u�ytoparametru o warto�ci 14000, co oznacza odtwarzanie dwi�kuod 14. sekundy

Rysunek 8.12. W tym przyk�adzie dla metody play()pierwszy parametr ustawiono na warto�� 0, a drugi na 3,co oznacza trzykrotne odtworzenie dwi�ku od samego pocz�tku

Sterowanie odtw

arzaniem dw

i�ków

Page 13: Flash CS3 Professional PL. Techniki zaawansowane. Klatka po klatce

Rozdzia� 8.

322

Wstrzymywanie odtwarzania dwi�ku

Odtwarzanie d�wi�ku mo�na wstrzyma, stosuj�cmetod� klasy SoundChannel. Gdy wywo�ujemymetod� play() klasy Sound, tworzony jestegzemplarz obiektu SoundChannel. Dla ka�degoodtwarzanego d�wi�ku jest jeden egzemplarzSoundChannel.

Aby przypisa egzemplarz SoundChanneldo zmiennej i móc odnosi si� pó�niej do niegow ActionScript, u�yj nast�puj�cej instrukcji:

myChannel:SoundChannel=�mySound.play();

W tym przyk�adzie odtwarzany jest d�wi�kdo��czony do obiektu zwanego mySound. Zwróconyobiekt SoundChannel jest umieszczany w zmiennejo nazwie myChannel. Mo�esz teraz wstrzymaodtwarzanie d�wi�ku, stosuj�c metod� stop()obiektu klasy SoundChannel:

myChannel.stop();

Aby zatrzyma� odtwarzanie dwi�ku:

1. Kontynuuj prac� nad plikiem z wiczenia„Aby za�adowa i odtworzy zewn�trznyd�wi�k”.

2. Utwórz nowy symbol przycisku, umie� jegoegzemplarz na scenie i nadaj mu nazw�w panelu W�a�ciwo�ci (rysunek 8.13).

W naszym przyk�adzie u�yjemy funkcjiobs�uguj�cej zdarzenie klikni�cia tegoprzycisku, by wstrzyma odtwarzanie d�wi�ku.

3. Zaznacz pierwsz� klatk� g�ównej listwyczasowej i otwórz panel Operacje.

4. Zast�p polecenie zawieraj�ce metod� play()nast�puj�c� instrukcj�:

var myChannel:SoundChannel�=my.Sound.play()

To polecenie odtwarza d�wi�k i umieszczaobiekt SoundChannel, zwrócony przez metod�play(), w nowej zmiennej (typu SoundChannel)o nazwie myChannel (rysunek 8.14).

Rysunek 8.13. Ten egzemplarz przyciskuna scenie otrzyma� nazw� stopbutton_btn

Rysunek 8.14. Gdy wywo�ywana jest metodaplay() obiektu Sound, zwraca ona obiektSoundChannel. Obiekt ten jest przypisywanydo zmiennej myChannel

Ster

owan

ie o

dtw

arza

niem

dw

i�kó

w

Page 14: Flash CS3 Professional PL. Techniki zaawansowane. Klatka po klatce

Sterowanie d�wi�kiem

323

Rysunek 8.15. Funkcja obs�uguj�ca zdarzenieklikni�cia przycisku stopbutton_btn na scenie.Metoda stop(), która zatrzymuje odtwarzaniedwi�ku, jest wywo�ywana dla obiektuSoundChannel, zwanego myChannel

Rysunek 8.16. Drugi egzemplarz przyciskuna scenie otrzymuje nazw� resumebutton_btn

5. Utwórz funkcj� typu event handler,wykrywaj�c� klikni�cie przycisku na scenie.

6. Wewn�trz nawiasów klamrowych funkcjiwpisz nazw� obiektu SoundChannel, kropk�i metod� stop(), tak jak w poni�szymprzyk�adzie (rysunek 8.15).

myChannel.stop();

7. Przetestuj film.

Zewn�trzny d�wi�k zaczyna by odtwarzanypo uruchomieniu filmu. Klikni�cie przyciskuspowoduje zako�czenie odtwarzania.

Wskazówka

� Mo�esz równie� u�y metody stopAll() klasySoundMixer. To spowoduje zatrzymanieodtwarzania wszystkich d�wi�ków. U�yjna przyk�ad polecenia SoundMixer.stopAll().

Wznawianie dwi�ków

Mo�esz dowiedzie si�, jaka cz�� d�wi�ku zosta�aju� odtworzona, korzystaj�c z w�asno�ci positionobiektu SoundChannel. W�asno� positionzwraca bie��cy czas odtwarzanego nagraniaw milisekundach. Jest to bardzo przydatne,gdy chcesz zapami�ta moment, w którymodtwarzanie d�wi�ku zosta�o przerwane, a potemwznowi je od tego samego punktu.

Gdy u�ytkownik zatrzymuje odtwarzanie d�wi�ku,mo�esz przechwyci warto� w�asno�ci positionobiektu SoundChannel w tym momencie,przypisuj�c t� warto� do zmiennej. Potem,wznawiaj�c odtwarzanie d�wi�ku, przypiszeszprzechwycon� warto� do pierwszego parametrumetody play()obiektu Sound.

Aby wznowi� odtwarzanie:

1. Kontynuuj�c prac� nad plikiem z poprzedniegowiczenia, umie� na scenie kolejny egzemplarzprzycisku i nadaj mu nazw� w paneluW�a�ciwo�ci (rysunek 8.16).

W tym wiczeniu utworzymy funkcj�obs�uguj�c� zdarzenie klikni�cia tego drugiegoprzycisku, aby umo�liwi wznowienieodtwarzania d�wi�ku od punktu, w którymzosta�o przerwane.

Sterowanie odtw

arzaniem dw

i�ków

Page 15: Flash CS3 Professional PL. Techniki zaawansowane. Klatka po klatce

Rozdzia� 8.

324

2. Zaznacz pierwsz� klatk� g�ównej listwyczasowej i otwórz panel Operacje.

3. Zacznij tworzenie dalszej cz��ci skryptuod zadeklarowania zmiennejdo przechowywania warto�ci ca�kowitych(integer; rysunek 8.17).

Zmienna ta b�dzie przechowywa bie��c�pozycj� odtwarzania.

4. Wró do funkcji event handler, utworzonejdla pierwszego przycisku, przeznaczonegodo zatrzymania odtwarzania. Tu� przed metod�stop() wpisz dodatkowe polecenie, takie jakto poni�ej (rysunek 8.18):

pauseposition=myChannel.position;

Tu� przed zatrzymaniem d�wi�ku bie��capozycja odtwarzania jest przypisywanado zmiennej.

5. Utwórz kolejn� funkcj� typu event handler,reaguj�c� na klikni�cie drugiego przyciskuumieszczonego na scenie.

Zadaniem tej funkcji b�dzie wznowienieodtwarzania d�wi�ku.

6. Pomi�dzy nawiasami klamrowymi funkcjiwpisz nast�puj�ce polecenie (rysunek 8.19):

myChannel:SoundChannel=�mySound.play(pauseposition);

Pozycja odtwarzania zatrzymanego d�wi�kuzostanie u�yta jako pierwszy parametrmetody play(), który decyduje o warto�ciprzesuni�cia. D�wi�k jest odtwarzanyod miejsca, w którym si� zatrzyma�.

7. Przetestuj film.

Zewn�trzny plik d�wi�kowy zaczyna si�odtwarza. Klikni�cie pierwszego przyciskuwstrzymuje odtwarzanie. Klikni�ciedrugiego � wznawia je.

Rysunek 8.17. Pod�wietlone polecenie deklaruje now�zmienn� o nazwie pauseposition, która b�dzieprzechowywa� liczb� ca�kowit�

Rysunek 8.18. Zanim odtwarzanie dwi�ku zostanie przerwane,obecna pozycja odtwarzania (czas, jaki min�� od pocz�tkunagrania, w milisekundach) jest przechwytywana i zapisywanaw zmiennej pauseposition

Rysunek 8.19. Funkcja obs�uguj�ca zdarzenie klikni�cia przyciskuresumebutton_btn, umieszczonego na scenie. Metoda play()wykorzystuje zmienn� pauseposition jako parametr, tak byodtwarzanie by�o wznawiane od momentu, w którym je przerwano

Ster

owan

ie o

dtw

arza

niem

dw

i�kó

w

Page 16: Flash CS3 Professional PL. Techniki zaawansowane. Klatka po klatce

Sterowanie d�wi�kiem

325

Modyfikacja nat��eniai balansu dwi�kuFlash oferuje pe�n� kontrol� nad g�o�no�ci�i balansem d�wi�ku (si�� d�wi�ku podawan�do lewego i prawego g�o�nika). Nic wi�c nie stoina przeszkodzie, by da u�ytkownikowimo�liwo� sterowania g�o�no�ci� lub te�stosowa zmiany g�o�no�ci do uzyskania efektówspecjalnych. Mo�esz na przyk�ad zwi�ksza,a potem stopniowo zmniejsza nat��enie rykusilnika, gdy w grze w wy�cigi samochodowewymija gracza inny zawodnik. Sterowaniebalansem mo�na zastosowa w grze Pong,by odg�os uderzenia pi�ki w rakietk� dobiega�z g�o�nika po w�a�ciwej stronie.

Aby zmieni ogóln� g�o�no� oraz balans danegod�wi�ku, musisz wprowadzi trzeci parametrdo metody play() (jak zapewne pami�tasz,pierwszy parametr decyduje o przesuni�ciuodtwarzania, a drugi — o liczbie powtórze�).Trzeci parametr wymaga u�ycia obiektu klasySoundTransform. Najpierw trzeba go wi�cutworzy:

var newVolume:SoundTransform=new�SoundTransform()

Nast�pnie trzeba ustawi odpowiedni�w�asno� tego obiektu � na przyk�ad volume� na w�a�ciw� warto�, a potem u�y obiektuSoundTransform jako trzeciego parametrumetody play(), tak jak w poni�szym przyk�adzie:

newVolume.volume=.5;mySound.play(0,0,newVolume);

Aby zmieni g�o�no� lub balans d�wi�ku, któryju� jest odtwarzany, nale�y przypisa obiektSoundTransform do w�asno�ci soundTransformobiektu SoundChannel. Na przyk�ad tak:

var newVolume:SoundTransform=new�SoundTransform();newVolume.volume=.5;myChannel.soundTransform=newVolume;

Pierwsze z tych polece� tworzy nowy obiektklasy SoundTransform o nazwie newVolume(„nowa g�o�no�”). Nast�pnie w�asno� volumetego obiektu zostaje odpowiednio zmieniona.Na koniec obiekt SoundTransform zostajeprzypisany do w�asno�ci soundTransformobiektu SoundChannel, zwi�zanego z d�wi�kiem,który jest aktualnie odtwarzany.

Klasa SoundTransform jest wyposa�ona wew�asno�ci, takie jak volume (g�o�no�), pan (balans)oraz jeszcze kilka, s�u��cych do precyzyjnegomanipulowania prawym i lewym kana�em.Ich opis znajdziesz w tabeli 8.1.

Modyfikacja nat��enia i balansu dw

i�kuTabela 8.1. W�a�ciwo�ci obiektu SoundTransform

Parametr Warto��

volume Warto� liczbowa; 0 oznacza zupe�ne wyciszenie, 1 to pe�na g�o�no�pan Warto� liczbowa oznaczaj�ca balans g�o�ników; �1 to maksymalne przesuni�cie w lewo,

1 to maksymalne przesuni�cie w prawoleftToLeft Warto� liczbowa (od 0 do 1) okre�laj�ca, ile lewego kana�u zostanie odtworzone w lewym g�o�nikuleftToRight Warto� liczbowa (od 0 do 1) okre�laj�ca, ile lewego kana�u zostanie odtworzone w prawym g�o�nikurightToLeft Warto� liczbowa (od 0 do 1) okre�laj�ca, ile prawego kana�u zostanie odtworzone w lewym g�o�nikurightToRight Warto� liczbowa (od 0 do 1) okre�laj�ca, ile prawego kana�u zostanie odtworzone w prawym g�o�niku

Page 17: Flash CS3 Professional PL. Techniki zaawansowane. Klatka po klatce

Rozdzia� 8.

326

Aby ustawi� g�o�no�� dwi�kuprzed jego odtworzeniem:

1. Zadeklaruj i zainicjalizuj obiekt URLRequest,korzystaj�c z konstruktora new URLRequest(),i wpisz w roli parametru �cie�k� do pliku MP3.

2. W nast�pnej linii zadeklaruj i zainicjalizujnowy obiekt Sound, korzystaj�c z konstruktoranew Sound().

3. W kolejnym wierszu wpisz nazw� swojegoobiektu Sound, kropk� i metod� load().W roli parametru u�yj obiektu URLRequest.

Flash �aduje zewn�trzny plik MP3, wskazanyprzez obiekt URLRequest.

4. W kolejnej linii zadeklaruj i zainicjalizuj nowyobiekt SoundTransform, korzystaj�cz konstruktora new SoundTransform().

Obiekt ten jest wyposa�ony we w�asno�ci,których mo�emy u�y do sterowaniag�o�no�ci� i balansem d�wi�ku.

5. W kolejnej linii wpisz nazw� swojegoobiektu SoundTransform, kropk� i w�asno�,której chcesz u�y: volume dla g�o�no�ci,pan dla balansu. Potem wstaw znakrówno�ci i wpisz odpowiedni� warto�(rysunek 8.20).

6. W nast�pnej linii wpisz nazw� obiektuSound, kropk� i metod� play(). Jakoparametry wpisz 0, 5 oraz nazw� obiektuSoundTransform (rysunek 8.21). Przypiszwarto� zwrócon� przez metod� play()do obiektu klasy SoundChannel.

7. Przetestuj film.

Metoda play() odtwarza d�wi�k, korzystaj�cz obiektu SoundTransform do ustaleniapoziomu g�o�no�ci i (lub) balansu.

Rysunek 8.20. W�asno�� g�o�no�ci (volume) tego obiektuSoundTransform zosta�a ustawiona na po�ow� pe�nej g�o�no�ci

Rysunek 8.21. Obiekt SoundTransform o nazwie newSettingzostaje u�yty jako trzeci parametr metody play(). Ten dwi�kb�dzie odtwarzany od pocz�tku, pi�� razy, z g�o�no�ci�zmniejszon� do po�owyM

odyf

ikac

ja n

at��

enia

i ba

lans

u d

wi�

ku

Page 18: Flash CS3 Professional PL. Techniki zaawansowane. Klatka po klatce

Sterowanie d�wi�kiem

327

Rysunek 8.22. Egzemplarz przyciskuna scenie otrzyma� nazw� decrease_btn

Aby ustawi� g�o�no�� dwi�kuw trakcie odtwarzania:

1. Utwórz przycisk, umie� jego egzemplarzna scenie i nadaj mu nazw� w paneluW�a�ciwo�ci (rysunek 8.22).

Utworzymy funkcj� typu event handler,obs�uguj�c� klikni�cie tego przycisku.Przycisk umo�liwi zmian� g�o�no�ci d�wi�kuw trakcie odtwarzania.

2. Zaznacz pierwsz� klatk� g�ównej listwyczasowej i otwórz panel Operacje. Zacznijod zadeklarowania i zainicjalizowania obiektuURLRequest za pomoc� konstruktora newURLRequest(). Jako parametr podaj �cie�k�do zewn�trznego pliku MP3.

3. W kolejnej linii zadeklaruj i zainicjalizujobiekt Sound za pomoc� konstruktora newSound().

4. W nast�pnym wierszu wpisz nazw� obiektuSound, kropk� i metod� load(). Wpiszw nawiasach nazw� obiektu URLRequestjako parametr tej metody.

Flash za�aduje zewn�trzny plik MP3, któregoadres jest zawarty w obiekcie URLRequest.

5. W kolejnej linii zadeklaruj i zainicjalizuj obiektSoundTransform za pomoc� konstruktora newSoundTransform().

Obiekt ten wyposa�ony jest we w�asno�ci,których mo�emy u�y do sterowania g�o�no�ci�i balansem d�wi�ku. W tym przyk�adzieegzemplarz obiektu SoundTransform otrzyma�nazw� newSetting („nowe ustawienia”).

Modyfikacja nat��enia i balansu dw

i�ku

Page 19: Flash CS3 Professional PL. Techniki zaawansowane. Klatka po klatce

Rozdzia� 8.

328

6. W kolejnej linii wpisz nast�puj�ce polecenie:

var myChannel:SoundChannel�=mySound.play();

To polecenie odtwarza d�wi�k i umieszczazwrócony przez metod� play() obiekt klasySoundChannel w nowej zmiennej, tu o nazwiemyChannel (rysunek 8.23).

7. W nast�pnej linii utwórz funkcj� obs�uguj�c�zdarzenie (event handler), która b�dziewykrywa klikni�cie przycisku na scenie.W nawiasach klamrowych funkcji umie�polecenie:

newSetting.volume-=0.1;

To oznacza, �e przy ka�dym klikni�ciuprzycisku warto� przypisana w�asno�ci volumeobiektu SoundTransform zmniejszy si� o 0,1.

8. W kolejnej linii, lecz wci�� w ramachfunkcji event handler, dodaj polecenie:

myChannel.soundTransform=newSetting;

To polecenie przypisuje obiektSoundTransform o nazwie newSettingdo w�asno�ci soundTransform odtwarzanegod�wi�ku, tak by zmniejszenie g�o�no�cidosz�o do skutku (rysunek 8.24).

9. Przetestuj film.

Zewn�trzny plik MP3 �aduje si� i odtwarza.Przy ka�dym klikni�ciu przycisku w�asno�volume obiektu SoundTransform o nazwienewSetting zmniejsza si� o 0,1. Nast�pniezmodyfikowany obiekt newSetting jestprzypisywany do w�asno�ci soundTransformodtwarzanego d�wi�ku, co powodujeobni�enie jego g�o�no�ci.

Rysunek 8.23. Odtwarzany jest zewn�trzny plik MP3o nazwie music.mp3

Rysunek 8.24. Funkcja obs�uguj�ca klikni�cie przycisku decrease_btn,umieszczonego na scenie. Ka�de klikni�cie powoduje obni�enie o 0,1warto�ci przypisanej do w�asno�ci volume obiektu klasySoundTransform, zwanego newSetting. Obiekt SoundTransform jestprzypisany do w�asno�ci soundTransform obiektu SoundChannel,by mo�na by�o zmienia� g�o�no�� w trakcie odtwarzania

Mod

yfik

acja

nat

��en

ia i

bala

nsu

dw

i�ku

Page 20: Flash CS3 Professional PL. Techniki zaawansowane. Klatka po klatce

Sterowanie d�wi�kiem

329

Rysunek 8.25. W�a�ciwo�ci obiektuSoundTransform, okre�laj�ce rozk�ad dwi�kupochodz�cego z lewego i prawego kana�uw poszczególnych g�o�nikach. W�a�ciwo�cite przyjmuj� warto�ci od 0 do 1

Aby zamieni� z sob� kana�y dwi�ku:

� Przypisz nast�puj�ce warto�ci w�asno�ciomobiektu SoundTransform:

leftToLeft=0;leftToRight=1;rightToRight=0;rightToLeft=1;

Gdy dokonasz takiej zmiany w�asno�ci obiektuSoundTransform i przypiszesz ten obiektdo w�asno�ci soundTransform obiektuSoundChannel lub u�yjesz go w roli trzeciegoparametru metody play(), kana�y lewy i prawyzostan� zamienione: kana� prawy b�dzieodtwarzany z lewego g�o�nika, a lewy— z prawego (rysunek 8.25).

Wskazówka

� Aby skróci skrypt, mo�esz ustawi w�asno�ciobiektu SoundTransform ju� w chwili jegozainicjalizowania. Na przyk�ad polecenie varmyNewSettings:SoundTransform=newSoundTransform(.5,1) stanowi odpowiedniknast�puj�cej sekwencji polece�:

var myNewSettings:SoundTransform=new�SoundTransform();myNewSettings.volume=.5;myNewSettings.pan=1;

Modyfikacja nat��enia i balansu dw

i�ku

Page 21: Flash CS3 Professional PL. Techniki zaawansowane. Klatka po klatce

Rozdzia� 8.

330

Wykrywanie zdarze� dwi�kuMo�na wykry moment zako�czenia odtwarzaniad�wi�ku, u�ywaj�c zdarzeniaEvent.SOUND_COMPLETE klasy SoundChannel.Przyjrzyj si� nast�puj�cemu skryptowi:

myChannel.addEventListener�(Event.SOUND_COMPLETE, finished);function finished(myevent:Event):void { //koniec odtwarzania}

W tym przyk�adzie, gdy d�wi�k zwi�zanyz obiektem SoundChannel zostanie ju� w ca�o�ciodtworzony, wywo�ana zostanie funkcja o nazwiefinished („sko�czone”) i wykonane zostan�wszystkie polecenia, jakie w tej funkcji umie�cisz.

Zdarzenie Event.SOUND_COMPLETE umo�liwiasterowanie d�wi�kiem i jego integracj� na wieleró�nych sposobów. Wystarczy wyobrazi sobieszaf� graj�c�, losowo wybieraj�c� piosenki z bankualbumów. Gdy zako�czy si� jedna piosenka,Flash wie, �e nadszed� czas na rozpocz�ciekolejnej. Inny przyk�ad to prezentacja biznesowa,która przechodzi do kolejnego slajdu dopieropo zako�czeniu narracji. W poni�szym wiczeniuwykorzystamy zdarzenie ko�ca odtwarzaniado ustalenia momentu, w którym Flash powinienza�adowa i odtworzy kolejny plik.

Aby wykry� zako�czenie odtwarzania dwi�ku:

1. Zadeklaruj i zainicjalizuj obiekt URLRequestza pomoc� funkcji konstruktora newURLRequest() i wpisz jako parametr adreszewn�trznego pliku MP3.

2. W kolejnej linii zadeklaruj i zainicjalizujobiekt Sound za pomoc� funkcji konstruktoranew Sound().

3. W kolejnej linii wpisz nazw� obiektu Sound,kropk� i metod� load(). Jako parametr tejmetody podaj obiekt URLRequest.

Wyk

ryw

anie

zda

rze�

dw

i�ku

Page 22: Flash CS3 Professional PL. Techniki zaawansowane. Klatka po klatce

Sterowanie d�wi�kiem

331

4. W nowej linii wpisz nazw� obiektu Sound,kropk� i metod� play() bez parametrów.Przypisz zwrócon� warto� do nowegoobiektu SoundChannel (rysunek 8.26).

5. W kolejnej linii utwórz odbiornik zdarze�w obiekcie SoundChannel, nastawionyna wykrycie zdarzenia Event.�SOUND_COMPLETE (rysunek 8.27).

6. Utwórz funkcj� uruchamian� przezzdarzenie Event.SOUND_COMPLETE(rysunek 8.28).

Gdy odtwarzanie d�wi�ku si� zako�czy,funkcja zostanie wywo�ana. W tym przypadkudzia�anie funkcji polega na utworzeniu nowegoobiektu Sound, który za�aduje i odtworzy innyd�wi�k.

Wskazówka

� Je�li d�wi�k jest zap�tlony (powtarzanywielokrotnie), zdarzenie Event.S�OUND_COMPLETE zostanie zg�oszonepo ostatniej p�tli.

Rysunek 8.26. Odtwarzany jest zewn�trzny plik MP3o nazwie music1.mp3

Rysunek 8.27. Odbiornik zdarze� wykrywa zako�czenie�adowania i wywo�uje (tu jeszcze niezdefiniowan�) funkcj�o nazwie finished

Rysunek 8.28. Funkcja o nazwie finished rozpoczyna odtwarzaniedrugiego pliku dwi�kowego

Wykryw

anie zdarze� dwi�ku

Page 23: Flash CS3 Professional PL. Techniki zaawansowane. Klatka po klatce

Rozdzia� 8.

332

Wykorzystanie znacznikówinformacyjnych plików MP3Pliki MP3 to obecnie najpopularniejszy formatcyfrowy przechowywania muzyki. KompresjaMP3 pozwala znacz�co zmniejszy rozmiar plikuprzy jednoczesnym zachowaniu bardzo wysokiejjako�ci, niemal takiej jak przy odtwarzaniu p�ytkompaktowych. Dodatkow� zalet� plików MP3jest mo�liwo� „zaszycia” w ich wn�trzudodatkowych informacji na temat muzyki— metadanych. Pierwsza wersja metadanych(tak zwanych znaczników ID3) by�a umieszczanana ko�cu pliku MP3. Zawiera�a takie informacje,jak autor, tytu� piosenki, nazwa albumu,rok wydania, komentarz i gatunek muzyczny.Informacje znajduj�ce si� na ko�cu pliku by�yodczytywane przez wi�kszo� odtwarzaczy MP3.

Po pewnym czasie powsta�a obowi�zuj�ca obecniedruga wersja ID3. Jedn� z jej g�ównych cech jestprzeniesienie informacji na pocz�tek pliku MP3,by usprawni obs�ug� strumieniowania. Dodatkowopojawi�o si� wiele nowych pól, mi�dzy innymiinformacja na temat kompozytora, dyrygenta, typmedium, informacja o prawach autorskich i datanagrania.

Flash potrafi odczytywa znaczniki ID3v2 plikówMP3. Ka�dy element informacji (nazywanyznacznikiem) odpowiada konkretnej w�a�ciwo�ciobiektu id3, b�d�cego cz��ci� obiektu Sound.Przyk�adowo, mySound_sound.id3.TALB zawieranazw� albumu. Tabela 8.2 wymienia wszystkieznaczniki obs�ugiwane przez Flashaza po�rednictwem w�asno�ci obiektu Sound.

W jaki sposób pobiera si� znaczniki ID3? Trzebautworzy funkcj� obs�ugi zdarzenia, które jestwywo�ywane, gdy dost�pne s� znaczniki dlad�wi�ku odtwarzanego metod� play(). S�u�ydo tego zdarzenie Event.ID3. Jest to jedyny sposóbna odczytanie tych informacji.

W kolejnym wiczeniu za�adujesz zewn�trznyplik MP3 i wy�wietlisz zawarte w nim informacjew oknie Wyj�cie.

Znac

znik

i inf

orm

acyj

ne p

lików

MP3

Tabela 8.2. Znaczniki ID3v2

W�a�ciwo�� Opis

id3.COMM komentarzid3.TALB tytu� albumu, filmu lub nazwa

przedstawieniaid3.TBPM taktowanieid3.TCOM kompozytorid3.TCOP informacja o prawach autorskichid3.TDAT dataid3.TDLY opó�nienie listy odtwarzaniaid3.TENC autor kodowaniaid3.TEXT autor s�ówid3.TFLT typ plikuid3.TIME czasid3.TIT1 opis grupy zawarto�ciid3.TIT2 tytu� lub nazwa piosenkiid3.TIT3 podtytu�, dok�adniejszy opisid3.TKEY klucz pocz�tkowyid3.TLAN j�zykiid3.TLEN d�ugo�id3.TMED typ mediumid3.TOAL oryginalny album, film lub nazwa

przedstawieniaid3.TOFN oryginalna nazwa plikuid3.TOLY pierwotny autor tekstuid3.TOPE pierwotny wykonawcaid3.TORY pierwotna data wydaniaid3.TOWN w�a�ciciel pliku, licencjaid3.TPE1 g�ówny wykonawca lub solistaid3.TPE2 zespó�, orkiestra, akompaniamentid3.TPE3 dyrygent, re�yser d�wi�kuid3.TPE4 zaaran�owane, zmiksowane lub w inny

sposób zmienione przezid3.TPOS cz�� zbioruid3.TPUB wydawcaid3.TRCK numer �cie�ki lub pozycja w zbiorzeid3.TRDA data nagraniaid3.TRSN nazwa radiowej stacji internetowejid3.TRSO w�a�ciciel radiowej stacji internetowejid3.TSIZ rozmiarid3.TSRC mi�dzynarodowy, standaryzowany kod

nagrania (ISRC)id3.TSSE oprogramowanie lub sprz�t u�yty

do kodowaniaid3.TYER rokid3.WXXX ��cze URL

Page 24: Flash CS3 Professional PL. Techniki zaawansowane. Klatka po klatce

Sterowanie d�wi�kiem

333

Aby pobra� informacje na temat pliku MP3:

1. Zadeklaruj i zainicjalizuj obiekt klasyURLRequest, u�ywaj�c konstruktora newURLRequest(). Jako parametr podaj �cie�k�do pliku MP3.

2. Zadeklaruj i zainicjalizuj obiekt klasy Sound,u�ywaj�c konstruktora new Sound().

3. Wpisz nazw� utworzonego obiektu Sound,kropk� i metod� load(). W nawiasie jakoparametr podaj wcze�niej utworzony obiektURLRequest.

Flash �aduje zewn�trzny plik MP3, któregoadres i nazwa zosta�y zdefiniowanew obiekcie URLRequest.

4. W nowym wierszu ponownie wpisz nazw�obiektu Sound oraz kropk�. Wpisz metod�play() bez parametrów (rysunek 8.29).

Metoda play() odtwarza d�wi�k.

5. Dodaj odbiornik zdarze� do obiektu Sound.Nastaw go na wykrywanie zdarzeniaEvent.ID3, tak jak w poni�szym przyk�adzie:

mySound.addEventListener(Event.ID3,�gotmedata);

Gdy Flash otrzyma dane ID3 od za�adowanegopliku MP3, zdarzenie to uruchomi funkcj�o nazwie gotmedata („podaj dane”).

6. Utwórz funkcj� o nazwie gotmedata,wywo�ywan� przez zdarzenie Event.ID3.Pomi�dzy nawiasami klamrowymi funkcjiumie� polecenie trace, przeznaczonedo wy�wietlenia w�asno�ci id3, tak jakw poni�szym przyk�adzie (rysunek 8.30):

function gotmedata(myevent:�Event) : void{trace("title="+mySound.id3.TIT2);}

W tym przyk�adzie polecenie trace wy�wietlainformacj� na temat tytu�u piosenki zapisanejw pliku MP3. Do podanej informacji do��czaobja�nienie o brzmieniu title= („tytu� to...”).

Rysunek 8.29. Odtwarzany jest zewn�trzny plik MP3o nazwie music.mp3

Rysunek 8.30. Zdarzenie Event.ID3 zachodzi,gdy dostarczane s� metadane z pliku MP3. W�asno��id3.TIT2 odnosi si� do tytu�u utworu

Znaczniki informacyjne plików

MP3

Page 25: Flash CS3 Professional PL. Techniki zaawansowane. Klatka po klatce

Rozdzia� 8.

334

7. Dodaj wi�cej polece� trace pomi�dzynawiasami klamrowymi funkcji, tak byodczytana zosta�a ca�a informacja, jakiejpotrzebujesz (rysunek 8.31).

8. Zapisz swój plik FLA w miejscu, z któregob�dzie potrafi� znale� plik MP3, wskazanyprzez obiekt URLRequest1.

Testuj�c film w �rodowisku edycyjnymFlasha, mo�esz odczyta informacjepochodz�ce ze znaczników ID3 w oknieWyj�cie (rysunek 8.32).

Wskazówki

� U�ywaj�c dynamicznych pól tekstowych,mo�na wy�wietli u�ytkownikowi wszystkiepotrzebne informacje, zawartew znacznikach ID3, na scenie (a nie w oknieWyj�cie). Wi�cej informacji na tematdynamicznych pól tekstowych znajdujesi� w rozdziale 10.

� Gdy plik MP3 zawiera znaczniki ID3v1i ID3v2, zdarzenie Event.ID3 zostaniezg�oszone dwa razy.

� Aby zobaczy znaczniki ID3 plików MP3poza Flashem, wykonaj nast�puj�cedzia�ania:

W systemie Windows XP: kliknij prawymprzyciskiem myszy plik MP3. WybierzW�a�ciwo�ci/Podsumowanie/Zaawansowane.

W systemie Mac OS X: w iTunes wybierzz listy nazw� piosenki i naci�nij klawiszeCommand+I.

Rysunek 8.31. Dwie instrukcje trace umo�liwiaj�wy�wietlenie nazwiska wykonawcy i tytu�u piosenkiw oknie Wyj�cie, w trakcie testowania filmu,gdy nast�pi zdarzenie Event.ID3

Rysunek 8.32. Okno Wyj�cie, wy�wietlaneprzy testowaniu filmu

1 Wa�ne tylko w przypadku stosowania wzgl�dnych �cie�ek adresowych; wi�cej informacji na ten temat

znajduje si� w rozdziale 5. — przyp. t�um.

Znac

znik

i inf

orm

acyj

ne p

lików

MP3

Page 26: Flash CS3 Professional PL. Techniki zaawansowane. Klatka po klatce

Sterowanie d�wi�kiem

335

Rysunek 8.33. Dwa prostok�tne klipyfilmowe umieszczone na scenie: lewyo nazwie barleft_mc i prawy o nazwiebarright_mc. Punkty zaczepienia tychobiektów s� wyrównane do ich dolnejkraw�dzi

Wizualizacja dwi�kuPrawdopodobnie widywa�e� ju� graficzn�reprezentacj� d�wi�ku w postaci fali lubwznosz�cych si� w gór� ostrych kolców,wygl�daj�cych jak postrz�pione pasmo górskie,albo w postaci wibruj�cych linii i zmieniaj�cychsi�, t�czowych kolorów. Takie efekty mo�nazobaczy zarówno na wygaszaczach, jak i napokazach laserowych typu „�wiat�o i d�wi�k”.Te efekty graficzne s� zawsze zwi�zane z jakim�okre�lonym parametrem d�wi�ku. Wraz zezmian� d�wi�ku zmienia si� równie� obraz,co pozwala uzyska bezpo�redni�, graficzn�reprezentacj� tego, co s�yszymy. Ten typwizualizacji jest dobrym uzupe�nieniemodtwarzanego d�wi�ku, a w razie wyst�pieniaproblemów technicznych stanowi te� u�yteczn�informacj�; dzi�ki niemu dowiadujemy si�,czy w danym czasie jest odtwarzany jaki� d�wi�k.

Wizualizacj� d�wi�ku, mo�e nieco prostsz�od opisanych, mo�esz z powodzeniem wykonasam we Flashu. Klasa SoundChannel wyposa�onajest w dwie w�asno�ci, leftPeak oraz rightPeak,które przechowuj� informacj� na temat g�o�no�cid�wi�ku w lewym i prawym kanale w ka�dej chwiliodtwarzania. Pobieraj�c te dane dostateczniecz�sto, na przyk�ad za pomoc� zdarzeniaEvent.ENTER_FRAME lub obiektu Timer, mo�eszwykona na ich podstawie wizualizacj�. Mo�eszna przyk�ad skalowa pionowe paski odpowiedniodo nat��enia d�wi�ku w ka�dym kanale.

W kolejnym wiczeniu za�adujemy i odtworzymyzewn�trzny plik MP3, a pobrane warto�ciw�asno�ci leftPeak oraz rightPeak przypiszemydo w�asno�ci scaleY dwóch prostok�tnych klipówfilmowych.

Aby wykona� wizualizacj� nat��enia dwi�kuw lewym i prawym kanale:

1. Utwórz klip filmowy z pionowym prostok�tem,umieszczaj�c punkt zaczepienia na dolnejkraw�dzi tego prostok�ta. Umie� na sceniedwa egzemplarze tego klipu. Ka�demu z nichnadaj indywidualn� nazw� w paneluW�a�ciwo�ci (rysunek 8.33).

Te dwa pionowe paski b�d� zmienia sw�wysoko� tak, by odzwierciedla�o to zmianynat��enia d�wi�ku w ka�dym z kana�ów.

Wizualizacja dw

i�ku

Page 27: Flash CS3 Professional PL. Techniki zaawansowane. Klatka po klatce

Rozdzia� 8.

336

2. Jak w poprzednich wiczeniach, w paneluOperacje utwórz obiekt URLRequest za pomoc�konstruktora new URLRequest(), podaj�c jakoparametr �cie�k� adresow� pliku MP3.

3. Zadeklaruj i zainicjalizuj obiekt Soundza pomoc� konstruktora new Sound().

4. Wpisz nazw� obiektu Sound, kropk� i metod�load(). Podaj nazw� obiektu URLRequest jakojej parametr.

Flash �aduje zewn�trzny plik MP3, zgodnieze �cie�k� podan� w obiekcie URLRequest.

5. Wywo�aj metod� play() dla obiektu Soundi przypisz zwrócon� warto� do nowejzmiennej typu SoundChannel:

var myChannel:SoundChannel=�mySound.play();

Flash odtwarza d�wi�k i tworzy powi�zanyz tym d�wi�kiem obiekt SoundChannel(rysunek 8.34).

Rysunek 8.34. Odtwarzany jest zewn�trzny plik MP3, zwanymusic.mp3

Rysunek 8.35. Zdarzenie Event.ENTER_FRAME wywo�ujeregularne skalowanie obu prostok�tnych klipów, odpowiedniodo bie��cych warto�ci w�asno�ci leftPeak i rightPeak obiektuSound

Wiz

ualiz

acja

dw

i�ku

Page 28: Flash CS3 Professional PL. Techniki zaawansowane. Klatka po klatce

Sterowanie d�wi�kiem

337

Rysunek 8.36. Dwa prostok�tne klipy zwi�kszaj�i zmniejszaj� sw� wysoko�� w sposóbzsynchronizowany z dwi�kiem

6. Dodaj do sceny odbiornik zdarze� (eventlistener), wykrywaj�cy zdarzenieEvent.ENTER_FRAME:

stage.addEventLIstener�(Event.ENTER_FRAME, everyframe);

Flash wywo�uje funkcj� everyframe („ka�daklatka”) z cz�stotliwo�ci� wyznaczon� przezpr�dko� odtwarzania filmu.

7. Utwórz funkcj� wywo�ywan� w odpowiedzina zdarzenie Event.ENTER_FRAME.

8. W nawiasach klamrowych funkcji umie�polecenia, które zmieni� wygl�d klipówfilmowych, tak jak w poni�szym przyk�adzie(rysunek 8.35):

everyframe(event:Event):void{ barleft_mc.scaleY= �(myChannel.leftPeak); barright_mc.scaleY= �(myChannel.rightPeak);}

Warto�ci liczbowe w�asno�ci leftPeaki rightPeak zmieniaj� si� w zakresie od 0 do 1.Po przypisaniu tych warto�ci do w�asno�ciscaleY klipów filmowych tak samo zmieniasi� teraz wspó�czynnik pionowego skalowaniaprostok�tów.

9. Upewnij si�, �e zewn�trzny plik MP3 znajdujesi� w miejscu, w którym film Flasha mo�e goodnale�, na podstawie informacji zawartejw obiekcie URLRequest. Przetestuj film(Sterowanie/Testuj film; rysunek 8.36).

Wskazówka

� Flash przewiduje tak�e bardziej skomplikowanysposób obrazowania danych d�wi�kowych;s�u�y do tego klasa computeSpectrum() klasySoundMixer. Metoda ta zwraca dane na tematcz�stotliwo�ci fali, uzyskane z pomiaruwysoko�ci tonów (niskie zakresy cz�stotliwo�ciodpowiadaj� niskim tonom, a wysokie� wysokim). Wi�cej informacji na ten tematznajdziesz w pomocy Flasha. Patrz: Help/Programming ActionScript 3.0/Working withSound/Accessing raw sound data.

Wizualizacja dw

i�ku

Page 29: Flash CS3 Professional PL. Techniki zaawansowane. Klatka po klatce

Rozdzia� 8.

338

Tworzenie dynamicznegosterowania dwi�kiemJednym z najcz�stszych zastosowa� klasy Soundi klas z ni� zwi�zanych jest umo�liwienieu�ytkownikom sterowania g�o�no�ci� i balansemodtwarzanych d�wi�ków. Najcz��ciej do zmianyg�o�no�ci u�ywa si� klipu filmowego z mo�liwo�ci�przeci�gania — powstaje suwak, któregopo�o�enie mo�na powi�za z warto�ci� w�asno�civolume w�asno�ci soundTransform obiektuSoundChannel. Ka�da zmiana po�o�enia suwakapoci�ga za sob� wywo�anie metody zmianyg�o�no�ci.

By utworzy suwak zmiany g�o�no�ci, trzebautworzy dwa elementy: symbol ga�ki suwakai symbol prowadnicy dla suwaka (rysunek 8.37).Najpierw utwórz klip filmowy o nazwie groove_mc(„prowadnica”). Aby u�atwi sobie zadanie, ustald�ugo� szczeliny, w której przesuwa si� ga�ka,na 100 pikseli. Punkt zaczepienia ustaw po lewejstronie prostok�ta. Zastosowanie szeroko�ci tegoklipu równej 100 pikseli pozwoli �atwo skorelowapo�o�enie suwaka z warto�ci� w�asno�ci volume.Aby utworzy ga�k� suwaka z mo�liwo�ci�przeci�gania, utwórz klip filmowy o nazwieslider_mc i wywo�aj dla niego metod� startDrag()z ograniczeniem ruchu do obszaru klipu groove_mc.

Aby utworzy� interfejs do sterowaniag�o�no�ci� i balansem dwi�ku:

1. Utwórz klip filmowy z szerokim, lecz bardzoniskim prostok�tem o szeroko�ci 100 pikseli.Punkt zaczepienia umie� po lewej stronieprostok�ta.

2. Umie� egzemplarz klipu na scenie i w paneluW�a�ciwo�ci nadaj mu nazw�volumegroove_mc.

3. Utwórz kolejny klip filmowy dla ga�ki.

4. Umie� klip ga�ki suwaka nad klipemvolumegroove_mc i nadaj mu nazw�volume_mc w panelu W�a�ciwo�ci(rysunek 8.38).

Rysunek 8.37. Sk�adniki suwaków zapewniaj�cychzmian� g�o�no�ci odtwarzania dwi�kóworaz balansu. Na to urz�dzenie sk�adaj� si�dwie ga�ki i dwie szczeliny, wzd�u� którychmo�na je przeci�ga�

Rysunek 8.38. Klip filmowy volume_mc b�dziemo�na przeci�ga� wzd�u� klipu o nazwievolumegroove_mc. Punkt zaczepienia klipuvolumegroove_mc musi znajdowa� si� po lewejstronie

Rysunek 8.39. Klip filmowy balance_mc b�dziemo�na przeci�ga� wzd�u� klipu o nazwiebalancegroove_mc. Punkt zaczepienia klipubalancegroove_mc musi znajdowa� si� po lewejstronie

Dyna

mic

zne

ster

owan

ie d

wi�

kiem

Page 30: Flash CS3 Professional PL. Techniki zaawansowane. Klatka po klatce

Sterowanie d�wi�kiem

339

5. Powtórz kroki 2. – 4. tego wiczenia, lecztym razem nazwij szczelin�balancegroove_mc, a ga�k� — balance_mc.

Mamy teraz dwa suwaki, które b�dziemyprzeci�ga; na jednym b�dzie mo�naustawia g�o�no�, a na drugim — balansd�wi�ku (rysunek 8.39).

6. W panelu Operacje utwórz nowy obiektRectangle, którego lewy górny naro�nikjest dopasowany do punktu zaczepieniaklipu volumegroove_mc, szeroko� pasujedo szeroko�ci tego klipu, a wysoko� jestustawiona na 1, tak jak w tym przyk�adzie:

var myvolumebounds:Rectangle=new�Rectangle(volumegroove_mc.x,�volumegroove_mc.y,�volumegroove_mc.width, 1);

Ten prostok�t pos�u�y do ograniczeniaobszaru, w którym dozwolone jestprzeci�ganie ga�ki suwaka.

7. W nast�pnej linii utwórz drugi prostok�t(Rectangle), pasuj�cy do po�o�eniai do szeroko�ci klipu filmowegobalancegroove_mc (rysunek 8.40).

8. W kolejnej linii utwórz odbiornik zdarze�,wykrywaj�cy wci�ni�cie myszy (MouseEvent.�MOUSE_DOWN) nad klipem volume_mc.

Zdarzenie MOUSE_DOWN wywo�a akcj�startDrag dla tej ga�ki suwaka.

9. W kolejnej linii utwórz odbiornik zdarze�,wykrywaj�cy puszczenie myszy (MouseEvent.�MOUSE_UP) nad klipem volume_mc.

Zdarzenie MOUSE_UP wywo�a akcj� stopDragdla tej ga�ki suwaka.

10. Powtórz kroki 8. – 9., tworz�c odbiornikizdarze� MOUSE_DOWN i MOUSE_UP dla klipubalance_mc. Odbiorniki zdarze� MOUSE_UPdla obu klipów, volume_mc i balance_mc, b�d�wywo�ywa t� sam� funkcj� (rysunek 8.41).

Rysunek 8.40. Tworzone s� dwa obiekty Rectangle, których zadaniem b�dzie ograniczy� mo�liwo��przeci�gania ga�ek suwaków. Ka�dy prostok�t jest wyrównany do lewej kraw�dzi szczeliny,ma szeroko�� równ� szczelinie i tylko jeden piksel wysoko�ci

Rysunek 8.41. Metody addEventListener() u�ytedla zdarze� MOUSE_DOWN i MOUSE_UP pos�u��do rozpocz�cia i zako�czenia akcji przeci�gania

Dynamiczne sterow

anie dwi�kiem

Page 31: Flash CS3 Professional PL. Techniki zaawansowane. Klatka po klatce

Rozdzia� 8.

340

11. W kolejnych liniach skryptu utwórz funkcjetypu event handler, które b�d� rozpoczynaprzeci�ganie oraz je ko�czy. Dla ka�dejz wywo�anych metod startDrag() u�yjodpowiedniego obiektu Rectangle jakoparametru, ograniczaj�c obszar przeci�gania(rysunek 8.42).

Skrypt obs�uguj�cy przeci�ganie suwaków jestju� gotowy. W kolejnym wiczeniu b�dziemykontynuowa prac� nad tym plikiemi zajmiemy si� wprowadzeniem d�wi�kuoraz po��czeniem jego g�o�no�ci i balansuz odpowiednimi suwakami.

Aby skorelowa� po�o�enie ga�ek suwakówz g�o�no�ci� i balansem dwi�ku:

1. W panelu Operacje, w kolejnych liniachzainicjalizuj obiekt URLRequest, obiektSound, obiekt SoundChannel oraz obiektSoundTransform (rysunek 8.43).

2. Wywo�aj metod� load() obiektu Sound,u�ywaj�c obiektu URLRequest w roliparametru. Nast�pnie wywo�aj metod�play() obiektu Sound i przypisz zwrócon�warto� do obiektu SoundChannel(rysunek 8.44).

Rysunek 8.42. Funkcje event handler dla akcjiprzeci�gania i upuszczania obu ga�ek suwaków.Dla ka�dej z metod startDrag() u�yto obiektu Rectanglejako parametru, ograniczaj�c mo�liwo�� przeci�ganiado kierunku poziomego na szeroko�� szczeliny

Rysunek 8.43. Ta cz��� skryptu tworzy obiektypotrzebne do za�adowania dwi�ku i kontrolowania go

Rysunek 8.44.Kolejna cz��� skryptuodtwarza dwi�k

Dyna

mic

zne

ster

owan

ie d

wi�

kiem

Page 32: Flash CS3 Professional PL. Techniki zaawansowane. Klatka po klatce

Sterowanie d�wi�kiem

341

3. W kolejnej linii utwórz odbiornik zdarze�,wykrywaj�cy zdarzenie Event.ENTER_FRAME.

4. W kolejnej linii utwórz funkcj�, uruchamian�zdarzeniem Event.ENTER_FRAME.

Ta funkcja b�dzie wywo�ywana nieustannie,w ka�dej klatce filmu, wykorzystamy j�wi�c do utworzenia po��czenia mi�dzyga�kami suwaków a g�o�no�ci� i balansemodtwarzanego d�wi�ku.

5. Pomi�dzy nawiasami klamrowymi funkcjiumie� nast�puj�ce polecenie:

var newvolume:Number =�(volume_mc.x-volumegroove_mc.x)/100;

Wspó�rz�dna pozioma po�o�enia klipuszczeliny zostaje odj�ta od wspó�rz�dnejpoziomej aktualnego po�o�enia ga�kisuwaka g�o�no�ci (volume_mc), co oznacza,�e uzyskamy liczb� z zakresu od 0 do 100.Dziel�c rezultat tego odejmowania przez100, otrzymujemy warto� z zakresu0 do 1, któr� b�dziemy mogli przypisaw�asno�ci volume odtwarzanego d�wi�ku.Uzyskana warto� jest przechowywanaw zmiennej o nazwie newvolume („nowag�o�no�”).

6. W nast�pnej linii, nadal w nawiasachklamrowych funkcji, dodaj kolejne polecenie:

var newbalance:Number =�((balance_mc.x-�balancegroove_mc.x)/50)-1;

Wspó�rz�dna pozioma po�o�enia klipuszczeliny zostaje odj�ta od wspó�rz�dnejpoziomej aktualnego po�o�enia ga�ki suwakabalansu (balance_mc), co oznacza, �e uzyskamyliczb� z zakresu od 0 do 100. Dziel�c rezultattego odejmowania przez 50, uzyskujemyzakres warto�ci od 0 do 2, a odejmuj�cod tego 1, uzyskamy zakres od �1 do 1. Jestto odpowiedni zakres warto�ci dla w�asno�cipan d�wi�ku. Rezultat oblicze� jestprzechowywany w zmiennej o nazwienewbalance („nowy balans”).

7. Nadal w ramach funkcji przypisz nowewarto�ci w�asno�ciom volume i pan obiektuSoundTransform (w tym przyk�adzie jest toobiekt o nazwie newSetting, czyli „noweustawienia”). Na koniec przypisz obiektSoundTransform do w�asno�ci soundTransformbie��cego d�wi�ku (czyli obiektu SoundChannel,w tym przyk�adzie nosz�cego nazw� myChannel;rysunek 8.45).

newSetting.volume=newvolume;newSetting.pan=newbalance;myChannel.soundTransform=newSetting;

Rysunek 8.45. W tej cz��ci skryptu dokonywane jest po��czeniepo�o�e� suwaków z odpowiednimi w�asno�ciami dwi�ku. W ramachfunkcji wywo�ywanej przez zdarzenie Event.ENTER_FRAMEdokonywane s� pewne obliczenia, s�u��ce do uzyskania w�a�ciwegozakresu warto�ci: od 0 do 1 dla w�asno�ci volume i od �1 do 1 dlaw�asno�ci pan. Potem te warto�ci s� przypisywane do w�asno�ci obiektuSoundTransform, a obiekt SoundTransform jest przypisywanydo w�asno�ci soundTransform obiektu SoundChannel

Dynamiczne sterow

anie dwi�kiem

Page 33: Flash CS3 Professional PL. Techniki zaawansowane. Klatka po klatce

Rozdzia� 8.

342

8. Upewnij si�, �e Twój zewn�trzny plik MP3znajduje si� w miejscu, gdzie Flash mo�e goodnale�, pos�uguj�c si� informacj� zawart�w obiekcie URLRequest. Przetestuj film(Sterowanie/Testuj film).

Flash �aduje i odtwarza d�wi�k. Mo�eszpoci�gn� za suwak g�o�no�ci lub suwakbalansu podczas odtwarzania d�wi�ku,a natychmiast us�yszysz ró�nic�(rysunek 8.46).

Rysunek 8.46. Gotowy skrypt (po lewej) pozwala dynamicznie sterowa� g�o�no�ci� i balansemodtwarzanego dwi�ku za po�rednictwem pary suwaków (po prawej)

Dyna

mic

zne

ster

owan

ie d

wi�

kiem


Top Related