如何在动作脚本3中静音不同的声音

时间:2011-05-24 06:57:49

标签: flash actionscript-3 actionscript action

我想让音乐始终播放,并且能够将不同的部分静音。这是一个项目,你点击不同的人,他们来生活播放音乐。停止和玩耍不会让他们陷入困境。我没有使用动作脚本长

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 );

     }
}

1 个答案:

答案 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);