r08-04, Księgozbiór, Studia, Informatyka


0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic

Części składowe języka HTML


0x08 graphic
Wprowadzenie do twojego filmu Flasha dźwięku może pozytywnie wpłynąć na animację i interaktywność, a także wzmocnić siłę wyrazu nawet najprostszego projektu, angażując kolejny zmysł odbiorcy. Można np. odtwarzać w tle muzykę podkreślającą nastrój filmu, dołączyć narrację do opowiadanej historii czy wprowadzić efekty dźwiękowe, które będą towarzyszyć różnym zdarzeniom - klikaniu przycisków, przeciąganiu obiektów, itd. Flash obsługuje pliki MP3 - mocno skompresowane, ale wciąż wysokiej jakości pliki audio - umożliwiając ci czerpanie z jeszcze szerszego spektrum dźwięku, a przy tym pozwalając zachować minimalne rozmiary pliku wynikowego.

Ten rozdział zaczyna się od przedstawienia sposobów na wykorzystanie obiektu Sound (dźwiękowego) - obiektu Flasha odpowiadającego za kontrolę dźwięku przy wykorzystaniu języka ActionScript. Powinieneś do tego momentu mieć ogólne pojęcie o posługiwaniu się dźwiękiem we Flashu, włączając w to choćby importowanie plików dźwiękowych i przypisywanie ich do ujęć kluczowych za pomocą opcji Event, Start, Stop i Stream Sync. Jeśli nie masz pewności co do używania którejś z tych metod, poszukaj dodatkowych informacji w dokumentacji programu. Dzięki temu rozdziałowi; nauczysz się, jak wykorzystać obiekt dźwiękowy do odtwarzania dźwięków bezpośrednio z biblioteki, bez umieszczania ich w ujęciach kluczowych. Zobaczysz, w jaki sposób ustawiać poziom głośności i balans dźwięku, korzystając z dynamicznego systemu kontroli opartego na interakcji z użytkownikiem i właściwościach filmu, poznasz też sposób udostępniania użytkownikowi kontrolerów głośności i balansu pomiędzy kanałami. Nauczysz się, jak zarządzać dźwiękami, trzymając je poza środowiskiem projektu Flasha w postaci zewnętrznych filmów, co oznacza, że będziesz mógł stworzyć np. odgrywarkę plików dźwiękowych, przy czym pliki te będą przechowywane poza głównym interfejsem.

0x08 graphic
Obiekt dźwiękowy

Przyłączanie pliku dźwiękowego do ujęcia kluczowego na listwie czasowej jest łatwym sposobem na wprowadzenie dźwięków do twojego filmu. Dwa podstawowe sposoby integrowania filmu z dźwiękiem to użycie opcji Event Sync do odgrywania dźwięków towarzyszących zdarzeniom, np. wciśnięcia przycisku, oraz wykorzystanie opcji Stream Sync do synchronizacji dialogu z animacją. Jeśli jednak musisz mieć kontrolę nad tym, kiedy dźwięk jest odgrywany, lub też chciałbyś dynamicznie zmieniać jego natężenie (także w poszczególnych kanałach), skorzystaj z obiektu dźwiękowego.

Obiekt dźwiękowy (Sound) jest zdefiniowaną klasą Flasha, której metody umożliwiają kontrolowanie plików dźwiękowych importowanych i przechowywanych w bibliotece. Podobnie jak w przypadku obiektu koloru (Color), żeby użyć obiektu dźwiękowego, trzeba utworzyć jego klon za pomocą funkcji konstruktora i nadać mu nazwę. Kiedy już obiekt dźwiękowy posiada nazwę, można używać go do odgrywania i modyfikowania plików dźwiękowych przechowywanych w twojej bibliotece.

0x08 graphic
0x01 graphic

Rys. 8.1. Wpisz mySound jako nazwę twojego obiektu dźwiękowego i pozostaw pole Expression niezaznaczone

0x01 graphic

Rys. 8.2. Funkcja konstruktora new Sound tworzy klon nowego obiektu dźwiękowego

0x01 graphic

Rys. 8.3. Kiedy użytkownik zwolni przycisk, Flash utworzy obiekt dźwiękowy o nazwie mySound

W celu utworzenia
obiektu dźwiękowego
o charakterze globalnym:

  1. Zaimportuj plik dźwiękowy, wybierając File/Import (Ctrl+R).

Wybrany plik dźwiękowy pojawi się w bibliotece.

  1. Utwórz symbol przycisku i umieść jego klon na scenie.

  2. Zaznacz przycisk i otwórz paletę akcji.

  3. Wybierz Actions/set variable (Esc + sv). W oknie skryptu pojawi się, poniżej manipulatora zdarzenia myszy on (release), nowe wyrażenie.

  4. W polu Variable wpisz nazwę twojego nowego obiektu dźwiękowego (rys. 8.1).

  5. Kliknij w polu Value i wybierz Objects/ Sound/new Sound.

Zaznacz pole Expression. W polu Value pojawi się funkcja konstruktora newSound, z podświetlonym argumentem target (rys. 8.2).

  1. Usuń podświetlone słowo target. Argument oznaczony tym słowem wskazuje na klip filmowy zawierający dźwięki, które mają być kontrolowane przez obiekt dźwiękowy. Nie podając argumentu, utworzysz obiekt dźwiękowy kontrolujący wszystkie dźwięki z listwy czasowej (rys. 8.3).

0x08 graphic
Przyłączanie dźwięków

Jeśli posiadasz w swojej bibliotece wiele zaimportowanych dźwięków, musisz przekazać obiektowi dźwiękowemu, który dźwięk ma być odtworzony lub kontrolowany. Poszczególne dźwięki w bibliotece identyfikuje się za pomocą opcji Linkage, podobnie jak to robiłeś w rozdziale 7., kiedy przyłączałeś klip filmowy z biblioteki do klipu filmowego na scenie. Poza identyfikowaniem dźwięku, opcja Linkage umożliwia wyeksportowanie go z plikiem SWF, aby był dostępny dla wywołującego go obiektu dźwiękowego. Po zidentyfikowaniu dźwięku za pomocą opcji Linkage, możesz przyłączyć go do obiektu dźwiękowego, korzystając z metody attachSound.

W celu przyłączenia
dźwięku do obiektu dźwiękowego:

  1. Kontynuując poprzednie ćwiczenie, zaznacz swój plik dźwiękowy w bibliotece.

  1. Z menu Options wybierz Linkage (rys. 8.4).

Pojawi się okno dialogowe Symbol Linkage Properties.

  1. Spośród przycisków wyboru opcji Linkage kliknij Export this symbol. W polu Identifier wpisz nazwę identyfikującą twój dźwięk. Kliknij OK (rys. 8.5).

Flash wyeksportuje zaznaczony dźwięk w pliku SWF z unikalnym identyfikatorem, dzięki czemu dźwięk ten będzie możliwy do odtworzenia po wywołaniu go przez obiekt dźwiękowy.

  1. Zaznacz przycisk na scenie i otwórz paletę akcji.

  2. W oknie skryptu zaznacz wyrażenie new Sound.

Zaznaczając to wyrażenie, sprawiasz, że następne wyrażenie ActionScript pojawi się pod nim.

  1. Wybierz Actions/evaluate.

0x01 graphic

Rys. 8.4. Dla każdego dźwięku, który chcesz przyłączyć, wybierz opcję Linkage z menu biblioteki

0x01 graphic

Rys. 8.5. Ten dźwięk nosi nazwę narration i zostanie dołączony do eksportowanego pliku SWF

0x08 graphic
0x01 graphic

Rys. 8.6. Metoda attachSound wymaga podania argumentu idName, który jest identyfikatorem twojego dźwięku w bibliotece

0x01 graphic

Rys. 8.7. Metoda attachSound przyłącza dźwięk zidentyfikowany jako narration do obiektu dźwiękowego mySound

  1. W polu Expression wpisz nazwę obiektu dźwiękowego, a potem wybierz Objects/ Sound/attachSound. W polu Expression bloku edycji parametrów pojawi się metoda attachSound z podświetlonym argumentem idName (rys. 8.6).

  2. W polu Expression zastąp argument idName identyfikatorem twojego pliku dźwiękowego, pisząc go w cudzysłowie (rys. 8.7).

To bardzo ważne, żeby umieszczać identyfikator pliku dźwiękowego w cudzysłowie. Znak ten mówi Flashowi, że otoczone nim słowo jest rzeczywistą nazwą identyfikatora, a nie wyrażeniem, które powinien oszacować w celu określenia nazwy identyfikatora.

Wskazówka

  • Jako argument metody attachSound możesz podać wyrażenie. Przykładowo, zamiast umieszczać w cudzysłowie identyfikator, możesz wstawić tam generator liczb losowych. Następnie, już w bibliotece, przydziel poszczególnym dźwiękom w oknie dialogowym Symbol Linkage Properties identyfikatory w postaci liczb. Flash będzie przyłączał dźwięki w sposób losowy. Więcej o liczbach losowych dowiesz się z kolejnych rozdziałów.

0x08 graphic
Odtwarzanie dźwięków

Skoro już utworzyłeś nowy obiekt dźwiękowy i przyłączyłeś do niego dźwięk z biblioteki, możesz wreszcie odtworzyć ten dźwięk. Użyj metody start do odegrania dźwięku przyłączonego do obiektu dźwiękowego. Metoda start ma dwa parametry, secondOffset oraz loops.

Parametr secondOffset jest liczbą określającą, od której sekundy czasu trwania dźwięku ma się rozpocząć jego odtwarzanie. Możesz tak ustawić ten parametr, żeby dźwięk był odtwarzany od początku lub od późniejszego momentu. Jeśli, na przykład, masz 20-sekundowy dźwięk przyłączony do obiektu dźwiękowego, to ustalając parametr secondOffset na 10, sprawisz, że odgrywanie dźwięku zacznie się od jego środka. Nie oznacza to opóźnienia w odtwarzaniu o 10 sekund, tylko niezwłoczne rozpoczęcie odtwarzania od punktu oznaczonego jako „dziesiąta sekunda czasu trwania dźwięku”.

Parametr loops to liczba określająca, ile razy dźwięk ma być odtworzony. Ustawienie tego parametru na wartość 2 spowoduje dwukrotne odtworzenie dźwięku, bez żadnej przerwy. Ten parametr jest opcjonalny.

W celu odtworzenia dźwięku:

  1. Kontynuując poprzednie ćwiczenie, zaznacz przycisk i otwórz paletę akcji.

  1. W oknie skryptu zaznacz wyrażenie attachSound.

Czyniąc to, zyskujesz pewność, że kolejne wyrażenie pojawi się pod tym zaznaczonym.

  1. Wybierz Actions/evaluate.

W oknie skryptu pojawi się nowe wyrażenie.

  1. W polu Expression wpisz nazwę obiektu dźwiękowego.

0x08 graphic
0x01 graphic

Rys. 8.8. Metoda strat jest dodawana do skryptu po utworzeniu obiektu mySound i przyłączeniu dźwięku narration. Metoda start wymaga określenia argumentów secondOffset i loops

Drugi przycisk:

on (release) {

mySound.attachSound("Jazz");

}

Trzeci przycisk:

on (release) {

mySound.start(0,1)

}

Kiedy klikniesz pierwszy przycisk, a potem trzeci, usłyszysz dźwięk Hawaiian. Kiedy klikniesz drugi przycisk, a potem trzeci, usłyszysz dźwięk Jazz. Jeśli rozpoczniesz odtwarzanie dźwięku Jazz, zanim wybrzmi do końca dźwięk Hawaiian, usłyszysz, jak dźwięki nakładają się na siebie.

  1. Zaraz za nazwą obiektu dźwiękowego wstaw metodę start, wybierając Objects/Sound/start.

W polu Expression, za nazwą obiektu dźwiękowego, pojawi się metoda start z podświetlonymi dwoma parametrami: secondOffset oraz loops (rys. 8.8).

  1. W miejsce parametru secondOffset wpisz 0, a parametr loops zastąp cyfrą 5.

  2. Przetestuj film. Kiedy użytkownik zwolni przycisk, dźwięk zostanie odegrany od początku i powtórzony pięć razy.

Wskazówki

  • Metoda start odgrywa przyłączony dźwięk po każdym jej wywołaniu, nawet jeśli w tym czasie dźwięk jest już odtwarzany. W wyniku tego kolejno uruchamiane dźwięki nakładają się na siebie. W powyższym ćwiczeniu, na przykład, jeśli użytkownik będzie klikał przycisk wielokrotnie, dźwięki odtwarzane wciąż na nowo będą się na siebie nakładać. Żeby uniknąć takich nakładek, wstaw metodę stop - jak pokazano w następnym ćwiczeniu - zaraz przed metodą start.

  • Metoda start odgrywa dźwięk przyłączony jako ostatni do obiektu dźwiękowego. Znaczy to, że inny przycisk może powodować przyłączenie kolejnego dźwięku z biblioteki do tego samego obiektu dźwiękowego, a metoda start ten dźwięk odtworzy. Napisane w tym celu wyrażenia można oddzielić za pomocą trzech przycisków z przypisanymi następującymi akcjami:

Ujęcie pierwsze (tworzenie klonu mySound):

mySound = new Sound ();

Pierwszy przycisk:

on (release) {

mySound.attachSound("Hawaiian");

}

0x08 graphic
W celu
zatrzymania odgrywania dźwięku:

  1. Kontynuując poprzednie ćwiczenie, umieść na scenie kolejny klon symbolu przycisku.

  1. Zaznacz przycisk i otwórz paletę akcji.

  2. Wybierz Actions/evaluate.

Poniżej manipulatora zdarzenia myszy on (release) pojawi się nowe wyrażenie, a blok edycji parametrów będzie zawierał puste pole Expression.

  1. W polu Expression wpisz nazwę twojego obiektu dźwiękowego.

  2. Wybierz Objects/Sound/stop. Zaraz za obiektem dźwiękowym pojawi się metoda stop (rys. 8.9).

  3. Przetestuj film.

Kiedy użytkownik zwolni przycisk, dowolny dźwięk przyłączony do obiektu dźwiękowego - i aktualnie odgrywany - zamilknie.

Możesz zatrzymać odgrywanie wszystkich dźwięków bez wyjątku, jeśli użyjesz podstawowej akcji stopAllSounds.

W celu zatrzymania odgrywania wszystkich dźwięków:

  1. Wybierz Basic Actions/Stop All Sounds (Esc + ss).

Akcję tę możesz przypisać do przycisku, jak w poprzednim ćwiczeniu, lub do ujęcia kluczowego, a Flash przerwie odtwarzanie wszystkich dźwięków, obojętnie czy przyłączonych do obiektu dźwiękowego, czy też odtwarzanych z listwy czasowej za pomocą opcji Event, Start lub Stream.

0x01 graphic

Rys. 8.9. Powyższa metoda stop zatrzymuje odtwarzanie dowolnego dźwięku przyłączonego do obiektu dźwiękowego mySound. Dla metody tej nie istnieją żadne argumenty

0x08 graphic

Modyfikowanie dźwięków

Kiedy używasz obiektu dźwiękowego, Flash umożliwia ci kontrolowanie ogólnej głośności odtwarzanych dźwięków, a także głośności w poszczególnych kanałach (lewym i prawym), co nazywa się regulacją panoramy (inaczej: balans - przyp. tłum.). Mając takie możliwości, łatwo jest utworzyć interfejs pozwalający ustawiać poziom głosu w zależności od ich preferencji, czy też w ogóle tworzyć bardziej realistyczne środowiska. Przykładowo, w grze wyścigowej poziom dźwięku mógłby narastać, kiedy mijasz się z samochodem rywala. Wprowadzając regulację panoramy dźwięku w grze Pong, możesz zwiększyć doznania słuchowe graczy, jako że piłka uderzająca w jedną ze ścian wyzwalałaby dźwięk słyszalny z właściwej dla uderzenia strony (czyli np. z lewego kanału, jeśli uderzyła w lewą ścianę - przyp. tłum.).

Dwie metody, za pomocą których modyfikuje się dźwięk, to setVolume (głośność) i setPan (panorama). Metoda setVolume przyjmuje jako argument wartość w przedziale od 0 do 100, przy czym 100 oznacza maksymalną głośność, a 0 - ciszę. Metoda setPan przyjmuje jako argument wartość w przedziale od -100 do 100, gdzie -100 oznacza, że dźwięk będzie odtwarzany wyłącznie przez lewy kanał, a 100, odpowiednio przez prawy kanał. Ustawienie 0 rozdziela dźwięk równo na obydwa kanały.

W celu ustawienia głośności dźwięku:

  1. Kontynuując poprzednie ćwiczenie, umieść na scenie kolejny klon symbolu przycisku.

  1. Zaznacz przycisk i otwórz paletę akcji.

  2. Wybierz Actions/evaluate.

Poniżej manipulatora zdarzenia myszy on (release) pojawi się nowe wyrażenie, a blok edycji parametrów będzie zawierał puste pole Expression.

  1. W polu Expression wpisz nazwę twojego obiektu dźwiękowego.

  1. 0x08 graphic
    Wybierz Objects/Sound/setVolume. W polu Expression, zaraz za obiektem dźwiękowym, pojawi się metoda setVolume, z podświetlonym parametrem volume (rys. 8.10).

  2. W polu Expression w miejsce parametru volume wpisz liczbę z przedziału 0 do 100 (rys. 8.11).

  3. Przetestuj film.

Kiedy odtwarzając dźwięk, zwolnisz przycisk, głośność zmieni się stosownie do wprowadzonej wartości parametru volume.

Wskazówka

  • Domyślną wartością dla metody setVolume jest 100, tak więc możesz ją jedynie zmniejszać. Pomyśl o wprowadzanym parametrze jako procentowej wartości maksymalnego poziomu głośności.

0x01 graphic

Rys. 8.10. Metoda setVolume wymaga podania parametru volume (głośność)

0x01 graphic

Rys. 8.11. Głośność dla obiektu dźwiękowego mySound ustawiono na 20 procent

0x08 graphic
0x01 graphic

Rys. 8.12. Metoda setPan wymaga podania parametru pan, liczby w zakresie od -100 do 100

0x01 graphic

Rys. 8.13. Panorama dla obiektu dźwiękowego mySound jest ustawiona na 100, więc dźwięk będzie dobywał się tylko z prawego głośnika

W celu
ustawienia panoramy dźwięku:

  1. Kontynuując poprzednie ćwiczenie, umieść na scenie kolejny klon symbolu przycisku.

  1. Zaznacz przycisk i otwórz paletę akcji.

  2. Wybierz Actions/evaluate.

Poniżej manipulatora zdarzenia myszy on (release) pojawi się nowe wyrażenie, a blok edycji parametrów będzie zawierał puste pole Expression.

  1. W polu Expression wpisz nazwę twojego obiektu dźwiękowego.

  2. Wybierz Objects/Sound/setPan.

W polu Expression, zaraz za obiektem dźwiękowym, pojawi się metoda setPan, z podświetlonym parametrem pan (rys. 8.12).

  1. W polu Expression w miejsce parametru pan wpisz liczbę z przedziału -100 do 100 (rys. 8.13) (ta pojedyncza liczba określa balans pomiędzy siłą dźwięku w lewym i prawym głośniku).

  2. Przetestuj film.

Kiedy odtwarzając dźwięk, zwolnisz przycisk, panorama dźwięku zmieni się stosownie do wprowadzonej wartości parametru pan.

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
Modyfikowanie
niezależnych dźwięków

Jeśli utworzysz klon obiektu dźwiękowego i ustawisz dla niego parametry, jak w wyrażeniu mySound = new Sound (), metody setVolume i setPan będą miały działanie o charakterze globalnym, kontrolując wszystkie dźwięki z głównej listwy czasowej. Nawet jeśli utworzysz dwa oddzielne obiekty dźwiękowe, jak te poniżej,

mySound1 = new Sound ();

mySound2 = new Sound ();

nie będziesz mógł użyć metody setPan do odtwarzania dźwięku mySoun1 przez lewy kanał i dźwięku mySound2 przez kanał prawy.

Jeśli chcesz modyfikować dźwięki niezależnie, musisz tworzyć swoje obiekty dźwiękowe wraz ze ścieżkami dostępu do klipów filmowych. Wówczas obiekty dźwiękowe będą przypisywane do różnych klipów filmowych i metod setVolume oraz setPan będzie można używać do kontrolowania tych dźwięków oddzielnie.

W celu
niezależnego zmodyfikowania
dwóch dźwięków:

  1. Zaimportuj do Flasha dwa pliki dźwiękowe.

  1. Z menu Options w bibliotece wybierz Linkage i przydziel obydwu dźwiękom unikalne identyfikatory w oknie dialogowym Symbol Linkage Properties (rys. 8.14).

  2. Utwórz symbol klipu filmowego, umieść jego klon na scenie i nadaj mu nazwę.

  3. Umieść na scenie drugi klon klipu filmowego i również nadaj mu nazwę (rys. 8.15).

  4. Utwórz symbol przycisku, umieść jego klon na scenie, zaznacz go i otwórz paletę akcji.

0x01 graphic

Rys. 8.14. Nadaj każdemu zaimportowanemu dźwiękowi identyfikator w oknie dialogowym Symbol Linkage Properties

0x01 graphic

Rys. 8.15. Umieść dwa klony klipu filmowego na scenie jako odnośniki dla nowych obiektów dźwiękowych. Dwa klony klipów filmowych powyżej noszą nazwy movieClip1 oraz movieClip2

0x08 graphic
0x01 graphic

Rys. 8.16. Utworzono obiekt dźwiękowy mySound1 z odwołaniem do klipu filmowego movieClip1

0x01 graphic

Rys. 8.17. Powyższa metoda start odgrywa dźwięk musicSample1. Zwróć uwagę, że chociaż dźwięk mySound odwołuje się do klipu filmowego movieClip1, klip ten nie musi być umieszczany w ścieżce dostępu w celu wywołania metod attachSound lub start. Metody te odnoszą się do obiektu dźwiękowego, a nie do wskazanego klonu klipu filmowego

0x01 graphic

Rys. 8.18. Obiekt dźwiękowy mySound2 odwołuje się do klipu filmowego movieClip2 i odgrywa dźwięk musicSample2

  1. Skorzystaj z akcji set variable do utworzenia klonu nowego obiektu dźwiękowego, jak to robiłeś we wcześniejszych ćwiczeniach. Jako parametr target podaj nazwę pierwszego z klonów klipów filmowych (rys. 8.16).

  2. Wybierz akcję evaluate i przyłącz pierwszy dźwięk do tego pierwszego obiektu dźwiękowego.

  3. Jeszcze raz wybierz akcję evaluate i przypisz metodę start (rys. 8.17). Akcje przypisane do tego przycisku powodują utworzenie nowego obiektu dźwiękowego, przyłączenie dźwięku z biblioteki do obiektu, a następnie rozpoczęcie odgrywania dźwięku.

  4. Umieść na scenie kolejny klon symbolu przycisku.

  5. W podobny sposób utwórz klon następnego obiektu dźwiękowego, przyłącz drugi dźwięk z biblioteki do obiektu i przypisz metodę start (rys. 8.18).

  6. Umieść na scenie kolejne dwa klony symbolu przycisku.

  1. 0x08 graphic
    Dla pierwszego klonu przycisku, przypisz metodę setPan do pierwszego obiektu dźwiękowego, ustawiając parametr pan na wartość -100 (rys. 8.19).

Ten przycisk powoduje odtworzenie pierwszego dźwięku tylko w lewym głośniku.

  1. W drugim klonie przycisku, przypisz metodę setPan do drugiego obiektu dźwiękowego, ustawiając parametr pan na wartość 100 (rys. 8.20).

Ten przycisk powoduje odtworzenie drugiego dźwięku tylko w prawym głośniku.

  1. Przetestuj film.

Wskazówka

  • Klony klipów filmowych na scenie zachowują się jak znaki-wypełniacze lub puste pojemniki na oddzielne obiekty dźwiękowe. Możesz zarówno umieścić je poza sceną, żeby użytkownik nie mógł ich zobaczyć, jak i usunąć dowolną grafikę z ich pierwszego ujęcia kluczowego.

0x01 graphic

Rys. 8.19. Metoda setPan obiektu mySound1 odgrywa dźwięk musicSample1 tylko w lewym głośniku

0x01 graphic

Rys. 8.20. Metoda setPan obiektu mySound2 odgrywa dźwięk musicSample2 tylko w prawym głośniku

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic

0x01 graphic

Rys. 8.21. Parametry metody setTransform określają rozdział dźwięku na głośniki lewy i prawy. Pierwsza litera oznacza głośnik
(l - lewy; r - prawy); druga litera oznacza kanał sygnału wejściowego

Transformowanie dźwięków

Dla zaawansowanych użytkowników, którzy chcą mieć większą kontrolę nad odtwarzaniem dźwięku w poszczególnych kanałach, Flash udostępnia metodę setTransform. Metoda ta pozwala określić procentowe wartości parametrów, które decydują, jaki poziom dźwięku z lewego lub prawego kanału będzie słyszalny w lewym bądź prawym głośniku. Dzięki tej metodzie twój dźwięk może dynamicznie przenosić się z lewego głośnika do prawego lub przełączać pomiędzy trybami mono i stereo.

Metoda setTransform obiektu dźwiękowego jest bardzo zbliżona do metody setTransform obiektu koloru, omawianej w rozdziale 7. I tak jak w przypadku obiektu koloru - użycie metody setTransform wraz z obiektem dźwiękowym wymaga wcześniejszego utworzenia podstawowego obiektu, którego zadaniem będzie przechowywanie informacji o rozdzieleniu dźwięku pomiędzy kanały lewy i prawy. Parametrami obiektu transformacji dźwięku są ll, lr, rr i rl (rys. 8.21). Opis ich funkcjonowania przedstawia tabela 8.1.

Tabela 8.1. Parametry metody setTransform obiektu dźwiękowego

Parametr Wartość

ll

Wartość procentowa, określająca poziom głośności lewego kanału sygnału dźwiękowego w lewym głośniku.

lr

Wartość procentowa, określająca poziom głośności prawego kanału sygnału dźwiękowego w lewym głośniku.

rr

Wartość procentowa, określająca poziom głośności prawego kanału sygnału dźwiękowego w prawym głośniku.

rl

Wartość procentowa, określająca poziom głośności lewego kanału sygnału dźwiękowego w prawym głośniku.

0x08 graphic
0x08 graphic
W celu uzyskania efektu przenoszenia odtwarzanego dźwięku pomiędzy lewym i prawym kanałem:

  1. Zaimportuj do Flasha plik dźwiękowy.

  1. Z menu Options w bibliotece wybierz Linkage i przydziel dźwiękowi identyfikator w oknie dialogowym Symbol Linkage Properties (rys. 8.22).

  2. Utwórz symbol przycisku i umieść jego klon na scenie. Zaznacz klon i otwórz paletę akcji.

  3. Wybierz akcję set variable w celu utworzenia klonu nowego obiektu dźwiękowego, jak to robiłeś we wcześniejszych ćwiczeniach. Nie określaj parametru target (rys. 8.23).

  4. Wybierz akcję evaluate i przyłącz pierwszy dźwięk do pierwszego obiektu dźwiękowego.

  5. Wybierz akcję evaluate ponownie i przypisz metodę start (rys. 8.24). Ten przycisk będzie odtwarzał twój dźwięk.

  6. Umieść na scenie kolejny klon symbolu przycisku.

  7. Na palecie akcji wybierz Actions/set variable.

  8. W polu Variable palety akcji wpisz nazwę twojego nowego obiektu transformacji dźwięku.

  9. Kliknij w polu Value i wybierz Objects/Object/new Object. Zaznacz pole Expression widoczne obok pola Value (rys. 8.25).

W ten sposób przygotowałeś klon obiektu transformacji dźwięku.

0x01 graphic

Rys. 8.22. Ten dźwięk został zidentyfikowany jako musicSample za pomocą opcji Linkage w menu biblioteki

0x01 graphic

Rys. 8.23. Tworzymy obiekt dźwiękowy mySound

0x01 graphic

Rys. 8.24. Dźwięk musicSample jest odgrywany z obiektu dźwiękowego mySound

0x08 graphic
0x01 graphic

Rys. 8.26. Cztery parametry metody setTransform są definiowane jako właściwości obiektu mySoundTransform

0x01 graphic

Rys. 8.27. Metoda setTransform wymaga podania parametru sxform lub wskazania obiektu transformacji dźwięku

0x01 graphic

Rys. 8.28. Cztery parametry metody setTransform ,zdefiniowane w obiekcie mySoundTransform, dostarczają do metody niezbędnych informacji

  1. Wybierz Actions/set variable. W polu Variable palety akcji wpisz nazwę obiektu transformacji dźwięku, kropkę i na końcu jeden z parametrów. W polu Value wpisz liczbę odpowiadającą procentowej wartości parametru. Zaznacz pole Expression. Postąp identycznie ze wszystkimi czterema parametrami (rys. 8.26). W ten sposób zdefiniowałeś parametry obiektu transformacji dźwięku.

  2. Wybierz Actions/evaluate.

  3. W polu Expression palety akcji wpisz nazwę twojego obiektu dźwiękowego.

  4. Wybierz Objects/Sound/setTransform. W polu Expression, zaraz za obiektem dźwiękowym, pojawi się metoda setTransform z podświetlonym argumentem sxform umieszczonym w nawiasach (sxform jest skrótem od „sound transform”, transformacja dźwięku) (rys. 8.27).

  5. W miejsce podświetlonego argumentu wstaw nazwę twojego obiektu transformacji dźwięku (rys. 8.28).

Ten przycisk tworzy podstawowy obiekt do przechowywania informacji o transformacji dźwięku. Informacja taka jest później podstawiana do obiektu dźwiękowego przy pomocy metody setTransform.

  1. Przetestuj film. Kiedy zwolnisz drugi przycisk, zmieni się poziom głośności sygnału wejściowego w poszczególnych głośnikach.

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
Tworzenie systemu dynamicznej kontroli dźwięku

Jednym z najbardziej efektywnych sposobów wykorzystania obiektu dźwiękowego i jego metod jest tworzenie systemów dynamicznej kontroli dźwięku, dzięki którym użytkownik może sam ustalać pożądany poziom głośności oraz panoramę. Podstawową koncepcją w tym zakresie jest przygotowanie przeciąganego klipu filmowego, zachowującego się jak suwak. Przypisując odpowiednią pozycję przeciąganego klipu filmowego do parametru głośności (volume) metody setVolume, zyskasz możliwość zmiany poziomu głośności w momencie przesuwania klipu filmowego.

W przypadku pionowego suwaka, odpowiadającego za ustawianie głośności, mamy do czynienia z dwoma elementami: właściwym uchwytem oraz ścieżką, po której się on porusza (rys. 8.29). Zacznij od utworzenia klipu filmowego o nazwie groove. Żeby ułatwić sobie zadanie, niech klip filmowy będzie wysoki na 100 pikseli, z punktem środkowym w dolnej części prostokąta. Dzięki wybraniu takiej właśnie wysokości klipu, łatwiej będzie przyporządkować pozycję suwaka danej wartości parametru setVolume. W celu utworzenia przeciąganego suwaka, umieść niewidzialny przycisk wewnątrz klipu filmowego suwaka, przypisującego akcję startDrag i wymuszającego ruch względem klipu filmowego groove.

0x01 graphic

Rys. 8.29. Komponenty systemu kontroli dźwięku to suwak poruszający się w górę i w dół oraz jego ścieżka

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x01 graphic

Rys. 8.30. Ten klon klipu filmowego został nazwany groove i będzie ograniczał ruch przeciąganego klipu filmowego

0x01 graphic

Rys. 8.31. Parametry Constrain to rectangle ograniczają klip filmowy suwaka od punktu środkowego do 100 pikseli powyżej punktu środkowego klipu filmowego ścieżki

0x01 graphic

Rys. 8.32. Klip filmowy suwaka można przeciągać wzdłuż klipu filmowego ścieżki

W celu osadzenia suwaka na ścieżce
i przygotowania interfejsu
kontroli głośności:

  1. Utwórz klip filmowy w kształcie prostokąta wysokiego na 100 pikseli, z punktem środkowym przy dolnej krawędzi. Umieść klon klipu na scenie i nazwij go groove (ścieżka) (rys. 8.30).

  1. Utwórz kolejny klip filmowy, na potrzeby suwaka. Przejdź do trybu symbolu tego klipu filmowego.

  2. Utwórz niewidzialny przycisk i umieść jego klon wewnątrz klipu filmowego suwaka. Zaznacz przycisk i otwórz paletę akcji.

  3. Wybierz Actions/on. Zaznacz tylko zdarzenie Press.

  4. Wybierz Actions/startDrag. W polu Target wpisz this. Zaznacz pole Expression obok pola Target. Zaznacz pola Lock mouse oraz Constrain to rectangle. W polu L wpisz: _root.groove._x. W polu R wpisz: _root.groove._x. W polu T wpisz: _root.groove._y-100. W polu B wpisz: _root.groove._y. Akcje przypisane do klipu filmowego suwaka wiążą jego krawędzie ze środkiem klipu filmowego groove. Górna część suwaka jest przywiązana 100 pikseli powyżej dolnej krawędzi klipu filmowego groove, a jego dolna część jest związana z dolną krawędzią klipu groove (rys. 8.31).

  5. Wybierz Actions/on. Zaznacz zdarzenie Release.

  6. Wybierz Actions/stopDrag.

  7. Wróć do głównej listwy czasowej i przeciągnij klon klipu filmowego suwaka na scenę i nazwij go slider (suwak). Przetestuj film (rys. 8.32).

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
Metoda klipu filmowego GlobaltoLocal

Drugi etap tworzenia systemu dynamicznej kontroli głośności to wzajemne przyporządkowanie współrzędnej y położenia suwaka oraz parametru metody setVolume. Górny punkt ścieżki ma odpowiadać poziomowi głośności 100, a jej dolna część - poziomowi głośności 0 (rys. 8.33). Tylko jak dopasować współrzędne y poruszającego się suwaka do liczb z zakresu 0 do 100? Jednym ze sposobów jest posłużenie się metodą globaltoLocal, która dokonuje konwersji współrzędnych położenia suwaka na współrzędne odpowiadające klipowi filmowemu ścieżki. Jako że klip filmowy ścieżki ma wysokość 100 pikseli, a suwak jest dopasowany do jego wysokości, współrzędne lokalne ścieżki można z łatwością odnieść do ustawień głośności (rys. 8.34).

W celu przekształcenia
współrzędnych globalnych na lokalne:

  1. Kontynuując poprzednie ćwiczenie, zaznacz klip filmowy suwaka i otwórz paletę akcji.

  1. Wybierz Actions/onClipEvent.

  2. Na palecie akcji, zaznacz zdarzenie mouseEvent i wybierz Actions/set variable.

  3. W polu Variable wpisz nazwę obiektu, który będzie przechowywał informacje o współrzędnych x, y, przekształconych później na współrzędne lokalne. To jest twój obiekt punktu.

  4. W polu Value wybierz Objects/Object/new Object. Zaznacz pole Expression (rys. 8.35).

  5. Ponownie wybierz Actions/set variable.

0x01 graphic

Rys. 8.33. Parametry setVolume muszą odpowiadać pozycji suwaka na ścieżce

0x01 graphic

Rys. 8.34. Współrzędne globalne suwaka są określone przez główną listwę czasową sceny. Współrzędne lokalne są uzależnione od klipu filmowego ścieżki

0x01 graphic

Rys. 8.35. Obiekt punktu myPoint jest tworzony z podstawowej klasy obiektów

0x08 graphic
0x01 graphic

Rys. 8.36. Współrzędna myPoint.y zostaje przypisana do współrzędnej y położenia klipu filmowego suwaka

0x01 graphic

Rys. 8.37. Współrzędne obiektu punktu myPoint (myPoint.x i myPoint.y) zostają zamienione na współrzędne lokalne klipu filmowego ścieżki

  1. W polu Variable wpisz nazwę twojego obiektu punktu, kropkę i właściwość y. W polu Value wpisz this._y. Zaznacz pole Expression (rys. 8.36).

W ten sposób właściwość y zostaje ustawiona tak, by odpowiadać współrzędnej y położenia przeciąganego klipu filmowego.

  1. Ponownie wybierz Actions/set variable.

  2. W polu Variable wpisz nazwę twojego obiektu punktu, kropkę i właściwość x. W polu Value wpisz this._x. Zaznacz pole Expression. W ten sposób właściwość x zostaje ustawiona tak, by odpowiadać współrzędnej x położenia przeciąganego klipu filmowego.

  3. Wybierz Actions/evaluate.

  4. W polu Expression wprowadź ścieżkę dostępu do klipu filmowego, którego układu współrzędnych chciałbyś użyć. Potem wybierz Objects/Movie Clip/ globaltoLocal. W nawiasach metody globaltoLocal wpisz nazwę obiektu punktu (rys. 8.37). Flash przekształci współrzędne obiektu punktu (względem głównej listwy czasowej) na współrzędne wskazanego klipu filmowego (względem listwy czasowej klipu filmowego ścieżki).

0x08 graphic
W celu połączenia pozycji suwaka
z ustawieniem głośności:

  1. Kontynuując poprzednie ćwiczenie, zaimportuj do Flasha plik dźwiękowy.

  1. Z menu Options biblioteki wybierz Linkage i nadaj dźwiękowi identyfikator.

  2. Utwórz symbol przycisku i umieść jego klon na scenie. Zaznacz go i otwórz paletę akcji.

  3. Przypisz akcje tak, jak robiłeś to w poprzednich ćwiczeniach, w celu utworzenia nowego obiektu dźwiękowego. Przyłącz dźwięk z biblioteki do obiektu dźwiękowego, a następnie przypisz mu metodę rozpoczynającą odgrywanie dźwięku (rys. 8.38).

  4. Zaznacz twój przeciągany klip filmowy.

  5. Dodaj na końcu akcji manipulator zdarzenia onClipEvent (mouseMove), wybierając Actions/evaluate.

  6. Wprowadź ścieżkę dostępu do twojego obiektu dźwiękowego, a potem wybierz Objects/Sound/setVolume.

  7. W miejsce parametru volume wpisz
    -1*myPoint.y.

Współrzędna y położenia suwaka zmienia się od -100 do 0. Mnożąc obiekt punktu (myPoint) przez -1, zmieniasz ten zakres na 100 do 0 (rys. 8.39).

  1. Wybierz Actions/evaluate. W polu Expression wpisz updateAfterEvent (mouseMove);.

  2. Przetestuj film.

Teraz, przeciągając suwak w górę lub w dół, będziesz mógł zmieniać poziom głośności dźwięku.

0x01 graphic

Rys. 8.38. Kolejny przycisk rozpoczyna odgrywanie dźwięku musicSample

0x01 graphic

Rys. 8.39. Klip filmowy ścieżki ma wysokość 100 pikseli i punkt środkowy umieszczony przy dolnej krawędzi. Stąd współrzędne lokalne tego klipu mogą przyjmować wartości w zakresie -100 do 0. Jeśli chcesz zmienić ten zakres, wykonaj mnożenie przez (-1). W rezultacie otrzymasz zakres od 100 do 0 przy dolnej krawędzi, używany przez parametr setVolume

0x08 graphic
0x01 graphic

Rys. 8.40. Za pomocą opcji Stream Sync dźwięk przypisuje się do określonych klatek na listwie czasowej

Używanie dźwięków
jako plików zewnętrznych

Zawsze, gdy używasz okna dialogowego Symbol Linkage Properties do zidentyfikowania dźwięku w bibliotece i zaznaczenia go w celu wyeksportowania, dźwięk ten jest dodawany do pliku SWF, powiększając jego rozmiar. Dźwięki zajmują ogromną ilość miejsca, nawet z kompresją MP3, musisz więc starannie oceniać potrzebę dołączania dźwięków do filmu. Jednym ze sposobów takiego zarządzania plikami dźwiękowymi, by zachować minimalny rozmiar pliku wynikowego, jest przechowywanie ich w zewnętrznych filmach Flasha. Używaj akcji loadMovieNum do wprowadzania dźwięku do Flasha tylko wtedy, kiedy naprawdę go potrzebujesz. Możliwe jest także zmienianie dźwięku w zewnętrznym filmie Flasha bez dokonywania poprawek w głównym filmie. Przykładowo, możesz udostępnić użytkownikowi kilka ścieżek dźwiękowych do wyboru. Jednak do uruchomienia którejkolwiek z nich użyj akcji loadMovieNum, a do wyłączenia muzyki posłuż się akcją unloadMovieNum. Możesz również zrobić tak, żeby jeden zewnętrzny plik SWF uruchamiał wczytywanie innego pliku, także losowo wybranego. Dzięki temu można uzyskać funkcję wybierającą losowo ścieżkę dźwiękową z kolekcji przechowywanej w zewnętrznych plikach.

W celu odtworzenia dźwięku
z zewnętrznego filmu:

  1. Zaimportuj dźwięk do Flasha.

  1. Umieść klon dźwięku w listwie czasowej. Z palety Sound wybierz opcję Stream Sync i dodaj klatki do listwy czasowej, żeby pomieścić cały plik dźwiękowy (rys. 8.40).

  2. Wyeksportuj plik do formatu SWF.

  3. Otwórz nowy plik Flasha.

  4. Utwórz symbol przycisku i umieść jego klon na scenie.

  1. 0x08 graphic
    Zaznacz przycisk i otwórz paletę akcji.

  2. Wybierz Actions/loadMovie (Esc + lm).

  3. W polu URL palety akcji wpisz nazwę wyeksportowanego pliku SWF. W menu rozwijanym Location zaznacz Level i wpisz liczbę większą od 0 (rys. 8.41).

  4. Wyeksportuj ten film jako plik SWF i umieść obydwa pliki w tym samym katalogu. Kiedy zwolnisz przycisk, muzyka z pierwszego pliku SWF zostanie wczytana i odtworzona.

W celu zatrzymania
odgrywania dźwięku
umieszczonego
w zewnętrznym filmie:

  1. Kontynuując poprzednie ćwiczenie, dodaj drugi klon przycisku do pliku, który ma już akcję loadMovieNum przypisaną do jednego przycisku.

  1. Wybierz Actions/unloadMovie (Esc + um).

  2. W menu rozwijanym Location palety akcji wybierz opcję Level i wpisz tę samą liczbę, którą wprowadziłeś wcześniej dla akcji loadMovieNum (rys. 8.42).

  3. Wyeksportuj ten film w postaci pliku SWF i umieść obydwa pliki SWF w tej samej lokalizacji.

  4. Kiedy zwolnisz drugi z przycisków, muzyka z pierwszego pliku SWF przestanie być odtwarzana, jako że plik zostanie usunięty z tego poziomu.

Wskazówki

  • Można odtwarzać kilka dźwięków jednocześnie, wczytując różne pliki SWF do oddzielnych poziomów lub określonych klonów klipów filmowych.

  • Przypisz akcję kontrolującą ujęcia do ostatniego ujęcia kluczowego w zewnętrznym pliku SWF, wczytującym inny plik SWF do tego samego poziomu. Wówczas ten drugi plik SWF automatycznie zajmie miejsce pierwszego pliku, gdy tylko zakończy się odgrywanie dźwięku.

0x01 graphic

Rys. 8.41. Powyższe akcje, przypisane do przycisku, powodują wczytanie pliku music.swf

0x01 graphic

Rys. 8.42. Powyższe akcje, przypisane do przycisku, usuwają dowolny plik znajdujący się na poziomie 1

Rozdział 8.

258

257

Kontrolowanie dźwięku

8


Kontrolowanie dźwięku

Przyłączanie dźwięków

Obiekt dźwiękowy

y=100

x=120

(0,0)

Scena

Współrzędne globalne (120, 100), współrzędne lokalne określone względem klipu filmowego ścieżki (0, -20)

Klip filmowy ścieżki

Klip filmowy suwaka

Klip filmowy suwaka

Klip filmowy ścieżki

Lewy kanał sygnału wejściowego

Prawy kanał sygnału wejściowego

Lewy głośnik

Prawy głośnik

rl

ll

lr

rr

Ścieżka

Suwak

Odtwarzanie dźwięków

Odtwarzanie dźwięków

Modyfikowanie dźwięków

Niezależne dźwięki

Niezależne dźwięki

Transformowanie dźwięków

Dynamiczna kontrola dźwięków

Dynamiczna kontrola dźwięków

Dynamiczna kontrola dźwięków

Dźwięki jako pliki zewnętrzne

Kontrolowanie dźwięku

Obiekt dźwiękowy

Przyłączanie dźwięków

Odtwarzanie dźwięków

Modyfikowanie dźwięków

Modyfikowanie dźwięków

Niezależne dźwięki

Transformowanie dźwięków

Transformowanie dźwięków

Dynamiczna kontrola dźwięków

Dynamiczna kontrola dźwięków

Dźwięki jako pliki zewnętrzne



Wyszukiwarka

Podobne podstrony:
rB-04, Księgozbiór, Studia, Informatyka
r00-04, Księgozbiór, Studia, Informatyka
r04-04, Księgozbiór, Studia, Informatyka
Podz-04, Księgozbiór, Studia, Informatyka
rA-04, Księgozbiór, Studia, Informatyka
r05-04, Księgozbiór, Studia, Informatyka
r09-04, Księgozbiór, Studia, Informatyka
r11-04, Księgozbiór, Studia, Informatyka
r12-t, Księgozbiór, Studia, Informatyka
Metalurgia wyklad 04, Księgozbiór, Studia, Metalurgia
Informatyka-wyklady, Księgozbiór, Studia, Informatyka

więcej podobnych podstron