我有這個問題:只關閉聲音 - 如何?
如何關閉遊戲中的聲音?我問,因爲我的設置中有兩個按鈕:打開/關閉音樂和打開/關閉聲音。打開和關閉音樂非常簡單,因爲它使用特定的聲音通道。但是,如何僅關閉音量(例如,音樂仍在播放,而不是遊戲聲音)?
當我通過SoundMixer.soundtransform靜音時,你聽不到任何聲音,所以這不是我想要的。在我的遊戲中,所有的聲音都被扔進一個數組中。我的第一個想法是,我經歷了陣列中列出的所有聲音,並關閉音量,但這是行不通的。請 - 任何人都可以幫忙嗎?非常感謝你。
//not working
private var sounds:Array;
private var soundChannels:Array = [];
private var muteSoundTransform:SoundTransform = new SoundTransform();
public function muteSoundOnly():void {
muteSoundTransform.volume = 0;
var soundLength:int = soundChannels.length - 1;
for (var soundCtr:int = soundLength; soundCtr >= 0; soundCtr--)
{
soundChannels[soundCtr].soundTransform = muteSoundTransform;
}
}
將聲音添加到數組是一個很好的解決方案。你確定你沒有添加音樂到相同的陣列?或者音樂使用與效果相同的變換。 – Mattias
你的靜音功能只能被調用一次嗎?或者您是否忽略了切換靜音非靜音電話的代碼?在這種情況下,您只需要一個函數toggleSoundOnly()來切換聲音。 –
音樂使用不同的soundChannel(稱爲SoundTrackChannel),所以這應該不是問題。是的,我認爲這個函數只會被調用一次。我最初的想法是,你設置了一次音量。那麼我需要循環這個功能嗎? – drpelz