Pakiet | flash.media |
Klasa | public final class SoundChannel |
Dziedziczenie | SoundChannel EventDispatcher Object |
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
stop()
, właściwości dla monitorowania amplitudy (głośności) kanału, a także właściwość do przypisywania obiektu SoundTransform do kanału.
Powiązane elementy interfejsu API
Właściwość | Zdefiniowane przez | ||
---|---|---|---|
constructor : Object
Odwołanie do obiektu klasy lub funkcji konstruktora, dotyczące danej instancji obiektu. | Object | ||
leftPeak : Number [tylko do odczytu]
Bieżąca amplituda (głośność) w lewym kanale, od 0 (wyciszenie) do 1 (pełna amplituda). | SoundChannel | ||
position : Number [tylko do odczytu]
W momencie odtwarzania dźwięku właściwość position wskazuje bieżący punkt odtwarzany w pliku dźwiękowym (w milisekundach). | SoundChannel | ||
rightPeak : Number [tylko do odczytu]
Bieżąca amplituda (głośność) w prawym kanale, od 0 (wyciszenie) do 1 (pełna amplituda). | SoundChannel | ||
soundTransform : flash.media:SoundTransform
Skojarzony z kanałem dźwiękowym obiekt SoundTransform. | SoundChannel |
Metoda | Zdefiniowane przez | ||
---|---|---|---|
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Rejestruje obiekt detektora zdarzeń w obiekcie EventDispatcher, dzięki czemu detektor będzie otrzymywał powiadomienia o zdarzeniu. | EventDispatcher | ||
Wywołuje zdarzenie, tj. kieruje je do przepływu zdarzeń. | EventDispatcher | ||
Sprawdza, czy obiekt EventDispatcher zawiera jakiekolwiek detektory zarejestrowane dla konkretnego typu zdarzeń. | EventDispatcher | ||
Wskazuje, czy dla obiektu zdefiniowano określoną właściwość. | Object | ||
Wskazuje, czy instancja klasy Object należy do łańcucha prototypów obiektu określonego jako parametr. | Object | ||
Wskazuje, czy określona właściwość istnieje i jest przeliczalna. | Object | ||
Usuwa detektor z obiektu EventDispatcher. | EventDispatcher | ||
Ustawia dostępność właściwości dynamicznej używanej w pętlach. | Object | ||
Zatrzymuje odtwarzanie dźwięku w kanale. | SoundChannel | ||
Zwraca ciąg reprezentujący obiekt — sformatowany zgodnie z konwencjami właściwymi dla ustawień regionalnych. | Object | ||
Zwraca ciąg reprezentujący określony obiekt. | Object | ||
Zwraca pierwotną wartość dla określonego obiektu. | Object | ||
Sprawdza, czy detektor zdarzeń określonego typu jest zarejestrowany w tym obiekcie EventDispatcher lub jego elementach macierzystych. | EventDispatcher |
Zdarzenie | Podsumowanie | Zdefiniowane przez | ||
---|---|---|---|---|
[zdarzenie broadcast] Wywoływane, gdy program Flash Player lub aplikacja środowiska wykonawczego AIR uzyskuje fokus w systemie operacyjnym i przechodzi w stan aktywny. | EventDispatcher | |||
[zdarzenie broadcast] Wywoływane, gdy program Flash Player lub aplikacja AIR traci fokus w systemie operacyjnym i przechodzi w stan nieaktywny. | EventDispatcher | |||
Wywoływane po zakończeniu odtwarzania dźwięku. | SoundChannel |
leftPeak | właściwość |
position | właściwość |
position:Number
[tylko do odczytu] Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Podczas odtwarzania dźwięku właściwość position
wskazuje bieżący punkt odtwarzany w pliku dźwiękowym (w milisekundach). W momencie zatrzymania lub wstrzymania dźwięku właściwość position
wskazuje ostatnio odtwarzany punkt pliku dźwiękowego.
Powszechną praktyką jest zapisywanie wartości właściwości position
w momencie zatrzymania dźwięku. Istnieje możliwość późniejszego wznowienia odtwarzania dźwięku przez ponowne jego uruchomienie od zapisanego położenia.
Jeśli dźwięk jest odtwarzany w pętli, wartość position
zostaje ustawiona na 0 przy rozpoczęciu każdej pętli.
Implementacja
public function get position():Number
rightPeak | właściwość |
soundTransform | właściwość |
soundTransform:flash.media:SoundTransform
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Skojarzony z kanałem dźwiękowym obiekt SoundTransform. Obiekt SoundTransform zawiera właściwości umożliwiające ustawianie głośności, przesunięcia oraz przypisywanie lewego i prawego głośnika.
Implementacja
public function get soundTransform():flash.media:SoundTransform
public function set soundTransform(value:flash.media:SoundTransform):void
Powiązane elementy interfejsu API
stop | () | metoda |
public function stop():void
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Zatrzymuje odtwarzanie dźwięku w kanale.
Przykład ( Sposób korzystania z tego przykładu )
W konstruktorze ładowany jest plik dźwiękowy. (W tym przykładzie założono, że plik znajduje się w tym samym katalogu, co plik SWF). Użytkownik używa pola tekstowego jako przycisku w celu odtwarzania lub wstrzymywania pliku dźwiękowego. Kliknięcie pola tekstowego button
powoduje wywołanie metody clickHandler()
.
Pierwsze kliknięcie pola tekstowego w metodzie clickHandler()
powoduje przygotowanie dźwięku do odtwarzania i przypisanie go do kanału dźwiękowego. Następnie, gdy użytkownik kliknie pole tekstowe w celu wstrzymania, odtwarzanie dźwięku zostanie zatrzymane. Właściwość position
kanału dźwiękowego zapisze położenie dźwięku w czasie jego zatrzymania. Ta właściwość jest używana w celu wznowienia odtwarzania, rozpoczynając od tego położenia, po tym jak użytkownik kliknie pole tekstowe, aby ponownie rozpocząć odtwarzanie. Za każdym razem, kiedy wywoływana jest metoda Sound.play()
, tworzony jest nowy obiekt SoundChannel i przypisywany do zmiennejchannel
. Aby korzystać z metody stop()
kanału dźwięku w celu wstrzymywania dźwięku, należy do obiektu SoundChannel przypisać obiekt Sound.
package { import flash.display.Sprite; import flash.media.Sound; import flash.media.SoundChannel; import flash.net.URLLoader; import flash.net.URLRequest; import flash.text.TextField; import flash.events.MouseEvent; import flash.text.TextFieldAutoSize; public class SoundChannel_stopExample extends Sprite { private var snd:Sound = new Sound(); private var channel:SoundChannel = new SoundChannel(); private var button:TextField = new TextField(); public function SoundChannel_stopExample() { var req:URLRequest = new URLRequest("MySound.mp3"); snd.load(req); button.x = 10; button.y = 10; button.text = "PLAY"; button.border = true; button.background = true; button.selectable = false; button.autoSize = TextFieldAutoSize.CENTER; button.addEventListener(MouseEvent.CLICK, clickHandler); this.addChild(button); } private function clickHandler(e:MouseEvent):void { var pausePosition:int = channel.position; if(button.text == "PLAY") { channel = snd.play(pausePosition); button.text = "PAUSE"; } else { channel.stop(); button.text = "PLAY"; } } } }
soundComplete | Zdarzenie |
flash.events.Event
właściwość Event.type =
flash.events.Event.SOUND_COMPLETE
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Wywoływane po zakończeniu odtwarzania dźwięku.
StałaEvent.SOUND_COMPLETE
definiuje wartość właściwości type
obiektu zdarzenia soundComplete
.
To zdarzenie ma następujące właściwości:
Właściwość | Wartość |
---|---|
bubbles | false |
cancelable | false ; nie ma domyślnego zachowania, które można byłoby anulować. |
currentTarget | Obiekt przetwarzający aktywnie obiekt Event za pomocą detektora zdarzeń. |
target | Obiekt SoundChannel, w którym zakończyło się odtwarzanie dźwięku. |
Przykład ( Sposób korzystania z tego przykładu )
W konstruktorze definiowane jest pole tekstowe, które przechowuje listę utworów oraz wiersz z utworami wybranymi do odtwarzania. (Przyciski są zazwyczaj używane do odtwarzania, a pola list dla listy utworów). Obiekt formatowania tekstu został zdefiniowany tak, aby format wierszy utworów był zmieniany na kursywę po ich zaznaczeniu. Jeśli użytkownik kliknie pole tekstowe, wywołana zostanie metoda clickHandler()
.
W metodzie clickHandler()
metoda getLineIndexAtPoint()
obiektu pola tekstowego zwraca indeks wiersza, który wybrał użytkownik. Za pomocą indeksu wiersza metoda getLineText()
pobiera jego zawartość tekstową. Instrukcja „if” sprawdza, czy użytkownik wybrał odtworzenie utworu, czy dodanie utworu do listy odtwarzania. Jeśli wybrany został utwór i użytkownik wybrał opcję odtwarzania, usuwany jest detektor zdarzeń kliknięcia myszą i wywoływana jest metoda playNext()
w celu rozpoczęcia odtwarzania utworów. Jeśli użytkownik wybrał tytuł utworu, zawartość wiersza dodawana jest do tablicy songList
, a format wiersza zostaje zmieniony na kursywę.
Aby załadować i odtworzyć wszystkie utwory, metoda playNext()
wskazuje kolejne elementy listy tablicy. Utwór jest również przypisywany do kanału dźwiękowego. Detektor zdarzeń kanału dźwiękowego jest dodawany w odpowiedzi na zakończenie odtwarzania utworu i wywoływane jest zdarzenie Event.SOUND_COMPLETE
. Następnie metoda soundCompleteHandler()
wywołuje metodę playNext()
, aby odtworzyć kolejny utwór. Ten proces jest kontynuowany do momentu zakończenia odtwarzania wszystkich utworów znajdujących się w tablicy.
package { import flash.display.Sprite; import flash.media.Sound; import flash.media.SoundChannel; import flash.text.TextField; import flash.text.TextFieldAutoSize; import flash.events.MouseEvent; import flash.text.TextFormat; import flash.net.URLRequest; import flash.events.Event; import flash.events.IOErrorEvent; public class SoundChannel_event_soundCompleteExample extends Sprite { private var channel:SoundChannel = new SoundChannel(); private var songList:Array = new Array(); private var listTextField:TextField = new TextField(); private var songFormat:TextFormat = new TextFormat(); private var arrayIndex:int = 0; private var songSelected:Boolean = false; public function SoundChannel_event_soundCompleteExample() { listTextField.autoSize = TextFieldAutoSize.LEFT; listTextField.border = true listTextField.background = true; listTextField.text = "Song1.mp3\n" + "Song2.mp3\n" + "Song3.mp3\n" + "Song4.mp3\n" + "PLAY"; songFormat.italic = true; listTextField.addEventListener(MouseEvent.CLICK, clickHandler); addChild(listTextField); } private function clickHandler(e:MouseEvent):void { var index:int = listTextField.getLineIndexAtPoint(e.localX, e.localY); var line:String = listTextField.getLineText(index); var firstIndex:uint = listTextField.getLineOffset(index); var playLine:uint = listTextField.numLines - 1; if((index == playLine) && (songSelected == true)) { listTextField.removeEventListener(MouseEvent.CLICK, clickHandler); playNext(); } else if (index != playLine) { songList.push(line.substr(0, (line.length - 1))); listTextField.setTextFormat(songFormat, firstIndex, (firstIndex + listTextField.getLineLength(index))); songSelected = true; } } private function playNext():void { if(arrayIndex < songList.length) { var snd:Sound = new Sound(); snd.load(new URLRequest(songList[arrayIndex])); channel = snd.play(); channel.addEventListener(Event.SOUND_COMPLETE, soundCompleteHandler); arrayIndex++; } else { songSelected = false; while(arrayIndex > 0) { songList.pop(); arrayIndex--; } } } private function soundCompleteHandler(e:Event):void { playNext(); } private function errorHandler(errorEvent:IOErrorEvent):void { trace(errorEvent.text); } } }
package { import flash.display.Sprite; import flash.events.*; import flash.media.Sound; import flash.media.SoundChannel; import flash.net.URLRequest; import flash.utils.Timer; public class SoundChannelExample extends Sprite { private var url:String = "MySound.mp3"; private var soundFactory:Sound; private var channel:SoundChannel; private var positionTimer:Timer; public function SoundChannelExample() { var request:URLRequest = new URLRequest(url); soundFactory = new Sound(); soundFactory.addEventListener(Event.COMPLETE, completeHandler); soundFactory.addEventListener(Event.ID3, id3Handler); soundFactory.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler); soundFactory.addEventListener(ProgressEvent.PROGRESS, progressHandler); soundFactory.load(request); channel = soundFactory.play(); channel.addEventListener(Event.SOUND_COMPLETE, soundCompleteHandler); positionTimer = new Timer(50); positionTimer.addEventListener(TimerEvent.TIMER, positionTimerHandler); positionTimer.start(); } private function positionTimerHandler(event:TimerEvent):void { trace("positionTimerHandler: " + channel.position.toFixed(2)); } private function completeHandler(event:Event):void { trace("completeHandler: " + event); } private function id3Handler(event:Event):void { trace("id3Handler: " + event); } private function ioErrorHandler(event:Event):void { trace("ioErrorHandler: " + event); positionTimer.stop(); } private function progressHandler(event:ProgressEvent):void { trace("progressHandler: " + event); } private function soundCompleteHandler(event:Event):void { trace("soundCompleteHandler: " + event); positionTimer.stop(); } } }
Tue Jun 12 2018, 12:06 PM Z