在AS3中停止声音

时间:2013-10-14 03:26:24

标签: actionscript-3

我正在制作一张专辑的互动广告。它有4个可拖动的歌曲标题,当放在目标上时,启动歌曲。试图弄清楚如何在新歌开始时停止正在播放的歌曲。这是我的代码:

 package {
      import flash.display.*;
      import flash.events.*;
      import flash.media.Sound;
      import flash.media.SoundChannel;
      import flash.net.URLRequest;

  public class Deftones extends MovieClip{

      function Deftones() {

          swerve1.addEventListener(MouseEvent.MOUSE_DOWN, dragStartS);
          swerve1.addEventListener(MouseEvent.MOUSE_UP, dragEndS);
          polt1.addEventListener(MouseEvent.MOUSE_DOWN, dragStartS);
          polt1.addEventListener(MouseEvent.MOUSE_UP, dragEndS);
          rd1.addEventListener(MouseEvent.MOUSE_DOWN, dragStartS);
          rd1.addEventListener(MouseEvent.MOUSE_UP, dragEndS);
          gauze1.addEventListener(MouseEvent.MOUSE_DOWN, dragStartS);
          gauze1.addEventListener(MouseEvent.MOUSE_UP, dragEndS);
          var sound1:Sound= new Sound();
          var sound2:Sound= new Sound();
          var sound3:Sound= new Sound();
          var sound4:Sound= new Sound();
          sound1.load(new URLRequest("music/Swerve_City.mp3"));
          sound2.load(new URLRequest("music/Poltergeist.mp3"));
          sound3.load(new URLRequest("music/Romantic_Dreams.mp3"));
          sound4.load(new URLRequest("music/Gauze.mp3"));
          var channel:SoundChannel= new SoundChannel();

          function dragStartS(e:MouseEvent){
              e.currentTarget.startDrag();
          }
          function dragEndS(e:MouseEvent){
              e.currentTarget.stopDrag();
              if (swerve1.hitTestObject(speaker1)){
                  channel.stop();
                  sound1.play(0);
              }
              else if (polt1.hitTestObject(speaker1)){
                  channel.stop();
                  sound2.play(0);
              }
              else if (rd1.hitTestObject(speaker1)){
                  channel.stop();
                  sound3.play(0);
              }
              else if (gauze1.hitTestObject(speaker1)){
                  channel.stop();
                  sound4.play(0);
              }
          }

      }
  }

任何帮助都会让我非常感激。

2 个答案:

答案 0 :(得分:1)

您可以使用SoundMixer.stopAll()

  

停止正在播放的所有声音。

答案 1 :(得分:1)

您可以使用SoundChannel类,查看in this link(第4节 - 停止声音)