对不起我的英文..我有两个按钮的代码可以静音和取消静音...当我点击静音时,它可以正常工作,但当我点击另一个按钮使声音播放时它没有'工作了......有什么帮助?
import flash.media.SoundMixer;
speakerb1.addEventListener(MouseEvent.CLICK, speaker2sound);
speakerb2.addEventListener(MouseEvent.CLICK, speaker2sound);
var channel2:SoundChannel = new SoundChannel();
var clicktoPlay:Boolean = true;
function speaker2sound(e:MouseEvent):void{
if (clicktoPlay==true){
var snd2:Sound = new Sound;
snd2.load(new URLRequest("shakeup.wav"));
clicktoPlay=false;
channel2 = snd2.play();
speakerb1.visible=true;
speakerb2.visible=false;
SoundMixer.soundTransform = new SoundTransform(1);
}
if (clicktoPlay==false){
clicktoPlay=true;
speakerb2.visible=true;
speakerb1.visible=false;
SoundMixer.soundTransform = new SoundTransform(0);
}
clicktoPlay =!clicktoPlay;
}
channel2.addEventListener(Event.SOUND_COMPLETE,soundfin);
function soundfin(event:Event):void{
clicktoPlay=false;
speakerb1.visible=true;
speakerb2.visible=false;
}
答案 0 :(得分:0)
正如Marcela所说,试着取出“clicktoPlay =!clicktoPlay”这一行。看看它是否有效 现在代码的方式,直到调用“soundfin”,无论调用speaker2sound的频率如何,clicktoPlay都将保持为真。
答案 1 :(得分:0)
我的代码使用了一些小的改动:
speakerb1.addEventListener(MouseEvent.CLICK, speaker2sound);
speakerb2.addEventListener(MouseEvent.CLICK, speaker2sound);
var channel2:SoundChannel = new SoundChannel();
var clicktoPlay:Boolean = true;
var snd2:Sound;
function speaker2sound(e:MouseEvent):void{
if (clicktoPlay==true){
if(!snd2){
snd2 = new Sound();
snd2.load(new URLRequest("Kalimba.mp3"));
channel2 = snd2.play();
}
speakerb1.visible=true;
speakerb2.visible=false;
SoundMixer.soundTransform = new SoundTransform(1);
}
else {
speakerb2.visible=true;
speakerb1.visible=false;
SoundMixer.soundTransform = new SoundTransform(0);
}
clicktoPlay =!clicktoPlay;
}
channel2.addEventListener(Event.SOUND_COMPLETE,soundfin);
function soundfin(event:Event):void{
clicktoPlay=false;
speakerb1.visible=true;
speakerb2.visible=false;
}
channel2.addEventListener(Event.SOUND_COMPLETE,soundfin);
function soundfin(event:Event):void{
clicktoPlay=false;
speakerb1.visible=true;
speakerb2.visible=false;
}