Pakket | flash.media |
Klasse | public final class SoundChannel |
Overerving | SoundChannel EventDispatcher Object |
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
stop()
, eigenschappen voor het regelen van de amplitude (volume) van het kanaal en een eigenschap waarmee een object SoundTransform voor het kanaal kan worden toegewezen.
Verwante API-elementen
Eigenschap | Gedefinieerd door | ||
---|---|---|---|
constructor : Object
Verwijzing naar het klasseobject of de constructorfunctie van een bepaalde objectinstantie. | Object | ||
leftPeak : Number [alleen-lezen]
De huidige amplitude (volume) van het linkerkanaal, van 0 (stil) tot en met 1 (volledige amplitude). | SoundChannel | ||
position : Number [alleen-lezen]
Wanneer het geluid wordt afgespeeld, geeft de eigenschap position het huidige punt aan (in milliseconden) in het geluidsbestand dat wordt afgespeeld. | SoundChannel | ||
rightPeak : Number [alleen-lezen]
De huidige amplitude (volume) van het rechterkanaal, van 0 (stil) tot en met 1 (volledige amplitude). | SoundChannel | ||
soundTransform : flash.media:SoundTransform
Het object SoundTransform dat aan het geluidskanaal is toegewezen. | SoundChannel |
Methode | Gedefinieerd door | ||
---|---|---|---|
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Registreert een gebeurtenislistenerobject bij een object EventDispatcher, zodat de listener een melding van een gebeurtenis ontvangt. | EventDispatcher | ||
Verzendt een gebeurtenis naar de gebeurtenisstroom. | EventDispatcher | ||
Controleert of het object EventDispatcher listeners heeft geregistreerd voor een specifiek type gebeurtenis. | EventDispatcher | ||
Geeft aan of voor een object een opgegeven eigenschap is gedefinieerd. | Object | ||
Geeft aan of een instantie van de klasse Object zich in de prototypeketen van het object bevindt dat als parameter is opgegeven. | Object | ||
Geeft aan of de opgegeven eigenschap bestaat en kan worden opgesomd. | Object | ||
Verwijdert een listener uit het object EventDispatcher. | EventDispatcher | ||
Stelt de beschikbaarheid van een dynamische eigenschap voor lusbewerkingen in. | Object | ||
Stopt het geluid dat in het kanaal wordt afgespeeld. | SoundChannel | ||
Geeft de tekenreeksweergave van dit object weer, geformatteerd volgens de locatiespecifieke conventies. | Object | ||
Retourneert een tekenreeksrepresentatie van het opgegeven object. | Object | ||
Retourneert de primitieve waarde van het opgegeven object. | Object | ||
Controleert of een gebeurtenislistener is geregistreerd bij dit object EventDispatcher of een van de voorouders voor het opgegeven type gebeurtenis. | EventDispatcher |
Gebeurtenis | Overzicht | Gedefinieerd door | ||
---|---|---|---|---|
[uitgezonden gebeurtenis] Wordt verzonden wanneer Flash Player of de AIR-toepassing de besturingssysteemfocus krijgt en actief wordt. | EventDispatcher | |||
[uitgezonden gebeurtenis] Wordt verzonden wanneer Flash Player of de AIR-toepassing de systeemfocus verliest en inactief wordt. | EventDispatcher | |||
Wordt verzonden wanneer het afspelen van een geluid is voltooid. | SoundChannel |
leftPeak | eigenschap |
position | eigenschap |
position:Number
[alleen-lezen] Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Wanneer het geluid wordt afgespeeld, geeft de eigenschap position
het huidige punt aan (in milliseconden) in het geluidsbestand dat wordt afgespeeld. Wanneer het geluid wordt gestopt of gepauzeerd, geeft de eigenschap position
het laatste punt aan in het geluidsbestand dat is afgespeeld.
Een vaak gebruikte methode is om de waarde van de eigenschap position
op te slaan wanneer het geluid wordt gestopt. U kunt het geluid later hervatten door het vanaf die opgeslagen positie opnieuw te starten.
Als het geluid is gelust, wordt de eigenschap position
bij het begin van elke lus teruggezet naar 0.
Implementatie
public function get position():Number
rightPeak | eigenschap |
soundTransform | eigenschap |
soundTransform:flash.media:SoundTransform
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Het object SoundTransform dat aan het geluidskanaal is toegewezen. Het object SoundTransform bevat eigenschappen waarmee het volume, panning en de toewijzing van de linker- en rechterluidspreker worden ingesteld.
Implementatie
public function get soundTransform():flash.media:SoundTransform
public function set soundTransform(value:flash.media:SoundTransform):void
Verwante API-elementen
stop | () | methode |
public function stop():void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Stopt het geluid dat in het kanaal wordt afgespeeld.
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
Het geluidsbestand is geladen in de constructor. (In dit voorbeeld wordt aangenomen dat het bestand zich in dezelfde map bevindt als het SWF-bestand.) Een tekstveld wordt gebruikt als knop om de gebruiker het geluid te laten afspelen of pauzeren. Wanneer de gebruiker het tekstveld button
selecteert, wordt de methode clickHandler()
aangeroepen.
Bij de methode clickHandler()
wordt het geluid ingesteld op afspelen en toegewezen aan een geluidskanaal wanneer de gebruiker het tekstveld voor het eerst selecteert. Wanneer de gebruiker het tekstveld selecteert om te pauzeren, wordt het afspelen gestopt. De eigenschap position
van het geluidskanaal registreert de positie van het geluid op het ogenblik dat het geluid werd gestopt. Deze eigenschap wordt gebruikt om het geluid vanaf die positie verder af te spelen nadat de gebruiker het tekstveld heeft geselecteerd om door te gaan met afspelen. Elke keer dat de methode Sound.play()
wordt aangeroepen, wordt een nieuw object SoundChannel gemaakt en toegewezen aan de variabele channel
. Het object Sound moet worden toegewezen aan een object SoundChannel om de methode stop()
van het geluidskanaal te kunnen gebruiken om het geluid te pauzeren.
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 | Gebeurtenis |
flash.events.Event
eigenschap Event.type =
flash.events.Event.SOUND_COMPLETE
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Wordt verzonden wanneer het afspelen van een geluid is voltooid.
De constanteEvent.SOUND_COMPLETE
definieert de waarde van de eigenschap type
van een soundComplete
-gebeurtenisobject.
Deze gebeurtenis heeft de volgende eigenschappen:
Eigenschap | Waarde |
---|---|
bubbles | false |
cancelable | false ; er is geen standaardgedrag om te annuleren. |
currentTarget | Het object dat het gebeurtenisobject actief verwerkt met een gebeurtenislistener. |
target | Het SoundChannel-object waarop het afspelen van een geluid is beƫindigd. |
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
In de constructor is een tekstveld gedefinieerd dat de lijst met nummers bevat en een regel voor de selectie die moet worden afgespeeld. (Gewoonlijk worden knoppen gebruikt voor afspelen en selectielijsten voor een lijst met nummers.) Er is een tekstopmaakobject gedefinieerd dat de opmaak van de regels met nummers cursief weergeeft wanneer deze worden geselecteerd. Wanneer de gebruiker het tekstveld selecteert, wordt de methode clickHandler()
aangeroepen.
Bij de methode clickHandler()
retourneert de methode getLineIndexAtPoint()
van het tekstveldobject de index van de regel die door de gebruiker is geselecteerd. Met de regelindex haalt de methode getLineText()
de inhoud van de tekst op. De instructie if controleert of de gebruiker ervoor heeft gekozen een nummer af te spelen of toe te voegen aan de afspeellijst. Wanneer een gebruiker heeft gekozen voor afspelen en een nummer is geselecteerd, wordt de gebeurtenislistener voor muisklik verwijderd en wordt de methode playNext()
aangeroepen om de nummers af te spelen. Wanneer de gebruiker de naam van een nummer heeft geselecteerd, wordt de inhoud van de regel aan de array songList
toegevoegd en wordt de opmaak van de regel cursief gemaakt.
De methode playNext()
doorloopt de arraylijst opnieuw om elk nummer te laden en af te spelen. Het nummer wordt ook toegewezen aan een geluidskanaal. Een gebeurtenislistener wordt voor het geluidskanaal toegevoegd om te reageren wanneer het nummer is afgespeeld en de gebeurtenis Event.SOUND_COMPLETE
wordt verzonden. De methode soundCompleteHandler()
roept vervolgens de methode playNext()
aan om het volgende nummer af te spelen. Dit proces gaat door totdat alle in de array genoemde nummers zijn afgespeeld.
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(); } } }
Wed Jun 13 2018, 11:42 AM Z