2011-05-24 174 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

相关问题