我有几个声音的音轨。我想从一开始就有一个“TitleMusic”,并允许用户打开和关闭其他轨道。我的代码现在有“TitleMusic”从一开始就播放所有其他曲目。我需要切换“track8”和所有其他曲目(不显示),以便它们在开始时关闭。这花了我很长时间才达到这一点,我只是需要一些帮助来扭转它。感谢
import flash.media.Sound;
import flash.media.SoundChannel;
var soundOn:Boolean = true;//This music is ON when we start
var myMusic:TitleMusic = new TitleMusic();
var myChannel1:SoundChannel = myMusic.play(0,1000);//endless loop, in effect
var soundOn3:Boolean = true; //music is ON when we start
var myMusic3:track8 = new track8();
var myChannel3:SoundChannel = myMusic3.play(0,1000); // endless loop, in effect
var myTransform3:SoundTransform;
mySoundButton3.addEventListener(MouseEvent.CLICK,toggleSound3);
mySoundButton3.buttonMode = true;
mySoundButton3.mouseChildren = false;
function toggleSound3(e:MouseEvent)
{
if(soundOn3)
{
// turn sound off
myTransform3 = new SoundTransform();
myTransform3.volume = 0; // silent
myChannel3.soundTransform = myTransform3;
soundOn3 = false;
mySoundButton3.myButtonText.text = "click to turn sound ON";
}
else // sound is off
{
// turn sound on
myTransform3 = new SoundTransform();
myTransform3.volume = 1; // full volume
myChannel3.soundTransform = myTransform3;
soundOn3 = true;
mySoundButton3.myButtonText.text = "click to turn sound OFF";
}
}
答案 0 :(得分:0)
你不能在mySoundButton3.mouseChildren = false;
之后把这条线放好:
toggleSound3(null);
或者,为了提高记忆效率,你可以这样做:
采取这一行:
var myChannel3:SoundChannel = myMusic3.play(0,1000);
并将其更改为:
var myChannel3:SoundChannel;
这使得你不会立即开始声音,而只是为它创建指针(var)
然后,在// turn sound on
:
if(!myChannel13){
myChannel3 = myMusic3.play(0,1000);
}
检查您是否已启动声音,如果没有,则会创建/启动声音
您还希望在声音关闭块中更改此行:
myChannel3.soundTransform = myTransform3;
到这个
if(myChannel13){
myChannel3.soundTransform = myTransform3;
}
这样,如果在开启按钮之前点击关闭按钮,它就不会抛出错误。