2012-04-26 53 views
0

FrogActionScript 3個的聲音

我正在開發一個Flash遊戲叫青蛙,在我的聲音代碼似乎有點多的時刻,我想簡化它,但不能看到。任何幫助,將不勝感激。

var musicSC:SoundChannel = new SoundChannel(); 
var musicST:SoundTransform = new SoundTransform(); 
var musicS:Sound = new Sound(); 
var musicURLR:URLRequest = new URLRequest('audio/music.mp3'); 
var flySC:SoundChannel = new SoundChannel(); 
var flyST:SoundTransform = new SoundTransform(); 
var flyS:Sound = new Sound(); 
var flyURLR:URLRequest = new URLRequest('audio/fly.mp3'); 
var frogSC:SoundChannel = new SoundChannel(); 
var frogST:SoundTransform = new SoundTransform(); 
var frogS:Sound = new Sound(); 
var frogURLR:URLRequest = new URLRequest('audio/frog.mp3'); 

function loopMusic():void { 
    musicSC = musicS.play(); 
    musicSC.addEventListener(Event.SOUND_COMPLETE, loopMusic); 
} 
function loopFrog():void { 
    frogSC = frogS.play(); 
    frogSC.addEventListener(Event.SOUND_COMPLETE, loopFrog); 
} 
function playFly():void { 
    flySC = flyS.play(); 
} 

musicS.load(musicURLR); 
flyS.load(flyURLR); 
frogS.load(frogURLR); 
loopMusic(); 
loopFrog(); 

回答

0

聲音對象的播放方法具有用於循環的數量的第二個參數:

musicS.play(0,int.MAX_VALUE的);

int.MAX_VALUE應該足夠循環您的應用程序。

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/media/Sound.html

+0

謝謝你,我會用它,因爲int.MAX_VALUE的是一個高得離譜的數字,我不應該需要比這更多。然而,純粹爲了將來的參考,是否沒有更有效的方法來「循環無限」? – 2012-04-27 09:36:27

+0

另外,我應該使用多個聲道嗎?我認爲這將是能夠單獨操縱我的聲音的最佳方法,這是正確的嗎? – 2012-04-27 09:37:40

+0

這是最簡潔的方法,但它有一個缺點,那就是循環不是無縫的(Flash會在加載的MP3開頭插入一個小的靜音,儘管如果聲音嵌入IDE )。如果您無法忍受這種差距,請在這裏查看一些解決方案:http://forums.flixel.org/index.php?topic=2964.0。 – 2012-04-27 13:23:03

相關問題