2010-01-10 3 views
1

나는 내가 연주하고 싶은 소리가 3 개 있습니다. 그것들은 제 도서관에 있습니다.
나는 그들 아래의 코드로 soundName.start(0,1)을 사용 중 하나를 재생할 수 있습니다 :각각이 끝날 때 차례대로 소리내어 재생

오전 데 문제가
firstSound = new Sound(); 
firstSound.attachSound("Sound1"); 
secondSound = new Sound(); 
secondSound.attachSound("Sound2"); 
thirdSound = new Sound(); 
thirdSound.attachSound("Sound3"); 

, 나는 Sound1 (사운드 1)이 후 sound3 바로 다음 그래서 난 다음 sound2을 재생할 수 있습니다 재생이 완료되면 알 수있는 방법 ?

답변

2

프레임 속도와 사운드 길이를 사용하여 사운드 끝의 프레임 번호를 계산할 수 있습니다. 그 후 AddFrameScript(frameNum, function)에 전화를 걸어 다음 소리를 재생할 코드를 추가 할 수 있습니다.

+0

, 내가 어디에로 시작하는 방법을 알고하지 않을 것입니다. 나는 그런 다음에 이런 종류의 사건이 없다고 생각하니? firstSound.addEventListener ("complete", myListener);를 시도했습니다. \t var myListener = new Object(); \t myListener.complete = function() { \t \t trace ("완료"); \t}; 하지만이 작업은 실행되지 않습니다. – 4imble

+0

이것은 소리 길이를 얻는 방법입니다. var c_snd : Sound = new Sound(); c_snd.attachSound ("linked_sound"); trace ('duration :'+ ((c_snd.duration/1000) << 0) + 's'); 이것을 프레임 속도로 나눠서 끝나는 프레임 번호를 얻습니다. "some_frame"이라고 부르 자. some_movie_clip.AddFrameScript (some_frame, your_sound_start_function)을 사용하십시오. 프레임 0과 메인 무비 클립에서 첫 번째 사운드를 시작한다고 가정했습니다. – oldUser

+0

안녕하세요, 코드 주셔서 감사합니다, 나는 AddFrameScript AS3 생각하지만 당신에게 감사의 지연 형태로 작동시킬 수있을 수도 있습니다. – 4imble

0

는 사실에는 onSoundComplete 사용, AS2의 방법이 존재한다 :

다소 복잡한 소리
soundFX = new Sound(); 
soundFX.loadSound("sound.wav", true); 
//or, if your sound is already in the library, 
//use soundFX.attachSound("librarySoundInstanceName"); 
soundFX.onSoundComplete = function() 
{ 
//DO some action 
///////////// 
gotoAndStop("new12"); 
die(); 
newLevel(); 
} 
관련 문제