如何取消静音as3中的声音?

时间:2013-12-09 16:17:17

标签: actionscript-3 flash-cs5

对不起我的英文..我有两个按钮的代码可以静音和取消静音...当我点击静音时,它可以正常工作,但当我点击另一个按钮使声音播放时它没有'工作了......有什么帮助?

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

2 个答案:

答案 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;
}
相关问题