我想要做的是在鼠標向下事件上循環播放聲音,然後在鼠標向上事件中,我想完成它正在進行的迭代並停止循環。循環聲音,但整理最後一次迭代
下面的邏輯應該可以工作,但我不知道爲什麼它不是。
import flash.events.MouseEvent;
import flash.media.Sound;
import flash.events.Event;
import flash.media.SoundChannel;
//ExplosionSound is .wav file linked in my library.
var s:Sound=new ExplosionSound();
var sc:SoundChannel = new SoundChannel();
stage.addEventListener(MouseEvent.MOUSE_DOWN, loopSound);
stage.addEventListener(MouseEvent.MOUSE_UP, stopLoop);
function loopSound(e:MouseEvent):void {
sc=s.play(0,9999);
}
function stopLoop(e:MouseEvent):void {
sc.addEventListener(Event.SOUND_COMPLETE, soundCompleteHandler);
}
function soundCompleteHandler(e:Event):void{
sc.removeEventListener(Event.SOUND_COMPLETE, soundCompleteHandler);
sc.stop();
}
我只能把sc.stop();在我的stopLoop()函數中,但立即停止聲音。
例如,我需要的是:假設您有機槍射擊,當您停止拍攝時,最後一個子彈聲音不會立即停止,它會結束。
希望這是有道理的。
謝謝你的一切幫助。
ExplosionSound不是原生Flash類,您沒有提供代碼;很難給你一個關於它可能有什麼問題的答案。我不相信這與Flex有關,所以我刪除了該標籤;我還添加了Flash標籤。 – JeffryHouser
它在代碼的評論 - ExplosionSound是從圖書館出口的wav – pkyeck