Paket | flash.media |
Klasse | public final class SoundChannel |
Vererbung | SoundChannel EventDispatcher Object |
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9, Flash Lite 4 |
stop()
-Methode, Eigenschaften zum Überwachen der Amplitude (Lautstärke) eines Kanals und eine Eigenschaft zum Zuweisen eines SoundTransform-Objekts zu einem Kanal.
Verwandte API-Elemente
Eigenschaft | Definiert von | ||
---|---|---|---|
constructor : Object
Ein Verweis auf das Klassenobjekt oder die Konstruktorfunktion für eine angegebene Objektinstanz. | Object | ||
leftPeak : Number [schreibgeschützt]
Die aktuelle Amplitude (Lautstärke) des linken Kanals von 0 (stumm) bis 1 (volle Amplitude). | SoundChannel | ||
position : Number [schreibgeschützt]
Wenn Sound abgespielt wird, zeigt die Positionseigenschaft die aktuelle Stelle, die in der Sounddatei abgespielt wird, in Millisekunden an. | SoundChannel | ||
rightPeak : Number [schreibgeschützt]
Die aktuelle Amplitude (Lautstärke) des rechten Kanals von 0 (stumm) bis 1 (volle Amplitude). | SoundChannel | ||
soundTransform : flash.media:SoundTransform
Das SoundTransform-Objekt, das dem Soundkanal zugewiesen wurde. | SoundChannel |
Methode | Definiert von | ||
---|---|---|---|
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Registriert ein Ereignis-Listener-Objekt bei einem EventDispatcher-Objekt, sodass der Listener über ein Ereignis benachrichtigt wird. | EventDispatcher | ||
Sendet ein Ereignis in den Ereignisablauf. | EventDispatcher | ||
Überprüft, ob das EventDispatcher-Objekt Listener für einen bestimmten Ereignistyp registriert hat. | EventDispatcher | ||
Gibt an, ob für ein Objekt eine bestimmte Eigenschaft definiert wurde. | Object | ||
Gibt an, ob eine Instanz der Object-Klasse in der Prototypkette des Objekts vorhanden ist, das als Parameter angegeben wurde. | Object | ||
Gibt an, ob die angegebene Eigenschaft vorhanden ist und durchlaufen werden kann. | Object | ||
Entfernt einen Listener aus dem EventDispatcher-Objekt. | EventDispatcher | ||
Legt die Verfügbarkeit einer dynamischen Eigenschaft für Schleifenoperationen fest. | Object | ||
Beendet die Wiedergabe des im Kanal wiedergegebenen Sounds. | SoundChannel | ||
Gibt die Stringdarstellung dieses Objekts zurück, formatiert entsprechend den Konventionen des Gebietsschemas. | Object | ||
Gibt das angegebene Objekt als String zurück. | Object | ||
Gibt den Grundwert des angegebenen Objekts zurück. | Object | ||
Überprüft, ob bei diesem EventDispatcher-Objekt oder bei einem seiner Vorgänger ein Ereignis-Listener für einen bestimmten Ereignistyp registriert ist. | EventDispatcher |
Ereignis | Übersicht | Definiert von | ||
---|---|---|---|---|
[broadcast event] Wird ausgelöst, wenn Flash Player oder eine AIR-Anwendung den Betriebssystemfokus erhält und aktiv wird. | EventDispatcher | |||
[broadcast event] Wird ausgelöst, wenn Flash Player- oder die AIR-Anwendung den Fokus verliert und inaktiv wird. | EventDispatcher | |||
Wird ausgelöst, wenn die Wiedergabe eines Sounds beendet ist. | SoundChannel |
leftPeak | Eigenschaft |
position | Eigenschaft |
position:Number
[schreibgeschützt] Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Wenn Sound abgespielt wird, zeigt die Positionseigenschaft
die aktuelle Stelle, die in der Sounddatei abgespielt wird, in Millisekunden an. Wenn Sound beendet oder angehalten wurde, zeigt die Positionseigenschaft
die zuletzt abgespielte Stelle in der Sounddatei an.
Häufig wird der Wert der Eigenschaft position
gespeichert, wenn der Sound gestoppt wird. Sie können die Wiedergabe später fortsetzen, indem Sie sie an der gespeicherten Position starten.
Wenn der Sound in einer Schleife wiedergegeben wird, wird position
am Anfang jeder Schleife auf 0 zurückgesetzt.
Implementierung
public function get position():Number
rightPeak | Eigenschaft |
soundTransform | Eigenschaft |
soundTransform:flash.media:SoundTransform
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Das SoundTransform-Objekt, das dem Soundkanal zugewiesen wurde. Ein SoundTransform-Objekt enthält Eigenschaften zum Festlegen von Lautstärke, Schwenkung sowie Zuordnung von linkem und rechtem Lautsprecher.
Implementierung
public function get soundTransform():flash.media:SoundTransform
public function set soundTransform(value:flash.media:SoundTransform):void
Verwandte API-Elemente
stop | () | Methode |
public function stop():void
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Beendet die Wiedergabe des im Kanal wiedergegebenen Sounds.
Beispiel ( Verwendung dieses Beispiels )
Im Konstruktor wird die Sounddatei geladen. (In diesem Beispiel wird davon ausgegangen, dass sich die Datei im selben Verzeichnis wie die SWF-Datei befindet.) Als Schaltfläche, mit der der Benutzer Sound abspielen oder anhalten kann, wird ein Textfeld verwendet. Wenn der Benutzer das Textfeld button
auswählt, wird die clickHandler()
-Methode aufgerufen.
In der clickHandler()
-Methode wird Sound auf die Wiedergabe eingestellt und einem Soundkanal zugewiesen, wenn der Benutzer das Textfeld zum ersten Mal auswählt. Wenn der Benutzer das Textfeld das nächste Mal auswählt, wird die Soundwiedergabe angehalten. Die position
-Eigenschaft des Soundkanals zeichnet die Position des Sounds zum Zeitpunkt des Stopps auf. Diese Eigenschaft wird verwendet, um den Sound ab dieser Position weiter abzuspielen, nachdem der Benutzer das Textfeld ausgewählt hat, um die Wiedergabe fortzusetzen. Bei jedem Aufrufen der Sound.play()
-Methode wird ein neues SoundChannel-Objekt erstellt und der Variablen channel
zugewiesen. Das Soundobjekt muss einem SoundChannel-Objekt zugewiesen werden, um mithilfe der Methode stop()
des Soundkanals den Sound anzuhalten.
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 | Ereignis |
flash.events.Event
Eigenschaft Event.type =
flash.events.Event.SOUND_COMPLETE
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Wird ausgelöst, wenn die Wiedergabe eines Sounds beendet ist.
DieEvent.SOUND_COMPLETE
-Konstante definiert den Wert der type
-Eigenschaft eines soundComplete
-Ereignisobjekts.
Dieses Ereignis verfügt über die folgenden Eigenschaften:
Eigenschaft | Wert |
---|---|
bubbles | false |
cancelable | false . Es gibt kein Standardverhalten, das abgebrochen werden kann. |
currentTarget | Das Objekt, welches das Ereignisobjekt aktiv mit einem Ereignis-Listener verarbeitet. |
target | Das SoundChannel-Objekt, in dem die Wiedergabe eines Sounds beendet wurde. |
Beispiel ( Verwendung dieses Beispiels )
Im Konstruktor wird ein Textfeld definiert, das die Liste der Titel sowie eine Zeile, die zum Abspielen ausgewählt wird, enthält. (Normalerweise werden Schaltflächen für die Wiedergabe und Listenfelder für Titellisten verwendet.) Ein Textformatobjekt wird definiert, das das Format der Titel nach der Auswahl zu kursiv ändert. Wenn ein Benutzer das Textfeld auswählt, wird die Methode clickHandler()
aufgerufen.
In der clickHandler()
-Methode gibt die getLineIndexAtPoint()
-Methode des Textfeld-Objekts den Index der Zeile, die der Benutzer ausgewählt hat, zurück. Mithilfe des Zeilenindex ruft die Methode getLineText()
den Textinhalt ab. Mit der if-Anweisung wird überprüft, ob der Benutzer eine Auswahl für die Wiedergabe getroffen oder der Wiedergabeliste einen Titel hinzufügt hat. Wenn der Benutzer sich für das Abspielen entschieden hat und ein Titel ausgewählt wurde, wird der Ereignis-Listener für den Mausklick entfernt und die playNext()
-Methode aufgerufen, um mit der Wiedergabe der Titel zu beginnen. Wenn der Benutzer einen Titel ausgewählt hat, wird der Inhalt der Zeile dem Array songList
hinzugefügt und das Format der Zeile wird auf kursiv eingestellt.
Die playNext()
-Methode durchläuft die Arrayliste, um die einzelnen Titel zu laden und abzuspielen. Der Titel wird auch einem Soundkanal zugewiesen. Ein Ereignis-Listener für den Soundkanal wird hinzugefügt, um zu reagieren, wenn ein Titel abgespielt wurde und das Ereignis Event.SOUND_COMPLETE
ausgelöst wird. Die soundCompleteHandler()
-Methode ruft dann die Methode playNext()
auf, um den nächsten Titel abzuspielen. Dieser Prozess wird fortgesetzt, bis alle im Array aufgeführten Titel abgespielt wurden.
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, 10:04 AM Z