SoundChannel, удалить EventHandler, AS3 - PullRequest
0 голосов
/ 06 апреля 2010

Есть ли лучший способ использовать звуковой канал AS3? Это работает, но я ненавижу, когда я дважды нажимаю кнопку воспроизведения, и он начинает удваиваться. Пожалуйста, порекомендуйте.

var mySound:Sound = new Sound();
playButton.addEventListener (MouseEvent.CLICK, myPlayButtonHandler);
var myChannel:SoundChannel = new SoundChannel();
        function myPlayButtonHandler (e:MouseEvent):void {

            myChannel = mySound.play();
            }
stopButton.addEventListener(MouseEvent.CLICK, onClickStop);
        function onClickStop(e:MouseEvent):void{
            myChannel.stop();
            }

/*-----------------------------------------------------------------*/
//global sound buttons, add instance of 'killswitch' and 'onswitch' to stage
killswitch.addEventListener(MouseEvent.CLICK, clipKillSwitch); 
        function clipKillSwitch(e:MouseEvent):void{ 
var transform1:SoundTransform=new SoundTransform();
transform1.volume=0;
flash.media.SoundMixer.soundTransform=transform1;
            }       
onswitch.addEventListener(MouseEvent.CLICK, clipOnSwitch); 
        function clipOnSwitch(e:MouseEvent):void{ 
var transform1_:SoundTransform=new SoundTransform();        
transform1_.volume=1;
flash.media.SoundMixer.soundTransform=transform1_;      
            }

Ответы [ 2 ]

1 голос
/ 06 апреля 2010
var mySound:Sound = new Sound();
playButton.addEventListener (MouseEvent.CLICK, myPlayButtonHandler);
var myChannel:SoundChannel = new SoundChannel();
        function myPlayButtonHandler (e:MouseEvent):void {

            myChannel = mySound.play();
            removeEventListener(MouseEvent.CLICK, myPlayButtonHandler);
            }
stopButton.addEventListener(MouseEvent.CLICK, onClickStop);
        function onClickStop(e:MouseEvent):void{
            myChannel.stop();
            removeEventListener(MouseEvent.CLICK, myPlayButtonHandler);

            }

/*-----------------------------------------------------------------*/
//global sound buttons, add instance of 'killswitch' and 'onswitch' to stage
killswitch.addEventListener(MouseEvent.CLICK, clipKillSwitch); 
        function clipKillSwitch(e:MouseEvent):void{ 
var transform1:SoundTransform=new SoundTransform();
transform1.volume=0;
flash.media.SoundMixer.soundTransform=transform1;
            }       
onswitch.addEventListener(MouseEvent.CLICK, clipOnSwitch); 
        function clipOnSwitch(e:MouseEvent):void{ 
var transform1_:SoundTransform=new SoundTransform();        
transform1_.volume=1;
flash.media.SoundMixer.soundTransform=transform1_;      
            }
1 голос
/ 06 апреля 2010

Просто используйте removeEventListener() для отсоединения myPlayButtonHandler на время звучания.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...