수색…


통사론

  • Sound.play (startTime : = 0, 루프 : int = 0, sndTransform : SoundTransform = null) : SoundChannel //로드 된 사운드를 재생하고 SoundChannel을 반환합니다.

소리 재생 중지

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
}

무한 루프 반복

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"
}

play() 함수를 호출하기 전에 사운드가로드 될 때까지 기다릴 필요도 없습니다. 그래서 이것은 같은 일을 할 것입니다 :

snd = new Sound(new URLRequest("filename.mp3"));
snd.play(0, int.MAX_VALUE);

그리고 어떤 이유로 든 사운드 inifinite 시간을 반복하고 싶다면 ( int.MAX_VALUE 는 mp3의 일시 정지를 계산하지 않고 약 68 년간 1 초 사운드를 반복합니다 ...) 다음과 같이 작성할 수 있습니다.

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() 함수는 호출 될 때마다 SoundChannel 객체의 새 인스턴스를 반환합니다. 변수에 assgin하고 SOUND_COMPLETE 이벤트를 수신합니다. 이벤트 콜백에서 현재 SoundChannel 객체에서 리스너가 제거되고 새 SoundChannel 객체에 대해 새 리스너가 만들어집니다.

외부 사운드로드 및 재생

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
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow