2011-05-24 37 views
1

我想讓音樂始終播放並且可以靜音不同的聲部。這是一個項目,你點擊不同的人,他們來生活播放音樂。一個停止和玩耍不會讓他們在snyc。我一直沒有使用動作腳本如何在actionscript3中將不同的聲音靜音

 
var my_sound:Sound = new Sound(); 
my_sound.load(new URLRequest("triumphant.mp3")); 
function setMute(vol){ 
var sTransform:SoundTransform = new SoundTransform(0); 
sTransform.volume = vol; 
SoundMixer.soundTransform = sTransform; 
} 
my_sound.play(); 
setMute(0) 
//2. 
//3. 
var Mute:Boolean = true; 
play_btn.addEventListener(MouseEvent.CLICK, toggleMuteBtn) 
function toggleMuteBtn(event:Event) { 
if (Mute) { 
    Mute = false; 
    setMute(1); 
    } 
    else{ Mute = true; setMute(0); 

    } 
} 

回答

5

您應該將每個聲音分配到不同的通道。每個通道都有自己的音量和聲像轉換。

SoundMixer.soundTranform適用於全球聲音。

var _bassSound:Sound = new Sound(); 
_bassSound.load(new URLRequest("you_mp3.mp3")); 

var _bassChannel:SoundChannel = _bassSound.play(); 
_bassChannel.soundTranform = new SoundTranform(1,0); 

,那麼你可以讓你的靜音功能,這樣

function setVolume (soundChannel:SoundChannel, volume:Number=0) { 

    var transform:SoundTransform = soundChannel.soundTransform; 
    transform.volume = volume; 
    soundChannel.soundTransform = transform; 

} 

// so you call it like this 

setVolume(_bassChannel); 

// or if you want to unmute 

setVolume(_bassChannel, 1); 
+1

我建議改變從toggleMute到setVolume方法的名稱。切換意味着在兩種狀態之間切換(通常是開和關)。此方法將音量設置爲音量參數中指定的任何值(默認設置爲0)。 – 2013-06-06 16:50:26

+0

你是對的,它更有意義!改變了! – Dimitris 2013-06-07 09:29:23

相關問題