ActionScript 3
Mit Sound arbeiten
Suche…
Syntax
- Sound.play (startTime: Number = 0, Loops: int = 0, sndTransform: flash.media: SoundTransform = null): SoundChannel // Spielt einen geladenen Sound ab und gibt einen SoundChannel zurück
Stoppen Sie die Wiedergabe eines Tons
import flash.net.URLRequest;
import flash.media.Sound;
import flash.media.SoundChannel;
import flash.events.Event;
var snd:Sound; = new Sound();
var sndChannel:SoundChannel
var sndTimer:Timer;
snd.addEventListener(Event.COMPLETE, soundLoaded);
snd.load(new URLRequest("soundFile.mp3")); //load after adding the complete event
function soundLoaded(e:Event):void
{
sndChannel = snd.play();
//Create a timer to wait 1 second
sndTimer = new Timer(1000, 1);
sndTimer.addEventListener(TimerEvent.TIMER, stopSound, false, 0, true);
sndTimer.start();
}
function stopSound(e:Event = null):void {
sndChannel.stop(); //Stop the sound
}
Endlosschleifen eines Sounds
import flash.net.URLRequest;
import flash.media.Sound;
import flash.events.Event;
var req:URLRequest = new URLRequest("filename.mp3");
var snd:Sound = new Sound(req);
snd.addEventListener(Event.COMPLETE, function(e: Event)
{
snd.play(0, int.MAX_VALUE); // There is no way to put "infinite"
}
Sie müssen auch nicht warten, bis der Sound geladen ist, bevor Sie die play()
Funktion aufrufen. Das wird also die gleiche Arbeit machen:
snd = new Sound(new URLRequest("filename.mp3"));
snd.play(0, int.MAX_VALUE);
Und wenn Sie den Sound wirklich aus irgendeinem Grund in einer int.MAX_VALUE
schleifen möchten ( int.MAX_VALUE
wird 1s-Sound für etwa 68 Jahre schleifen, ohne die Pause zu int.MAX_VALUE
, die ein MP3 verursacht ...), können Sie so etwas schreiben:
var st:SoundChannel = snd.play();
st.addEventListener(Event.SOUND_COMPLETE, repeat);
function repeat(e:Event) {
st.removeEventListener(Event.SOUND_COMPLETE, repeat);
(st = snd.play()).addEventListener(Event.SOUND_COMPLETE, repeat);
}
play()
Funktion play()
gibt bei jedem SoundChannel
neue Instanz des SoundChannel
Objekts zurück. Wir ordnen es der Variablen zu und warten auf das Ereignis SOUND_COMPLETE. Im Ereignisrückruf wird der Listener aus dem aktuellen SoundChannel
Objekt entfernt und ein neuer wird für das neue SoundChannel
Objekt erstellt.
Laden Sie einen externen Sound und spielen Sie ihn ab
import flash.net.URLRequest;
import flash.media.Sound;
import flash.events.Event;
var req:URLRequest = new URLRequest("click.mp3");
var snd:Sound = new Sound(req);
snd.addEventListener(Event.COMPLETE, function(e: Event)
{
snd.play();
}
Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow