0

我正在为一张专辑制作一个小互动广告。它有 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);
              }
          }

      }
  }

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

4

2 回答 2

1

您可以使用SoundMixer.stopAll()

停止当前播放的所有声音。

于 2013-10-14T03:36:35.370 回答
1

您可以为此使用 SoundChannel 类,查看此链接(第 4 节 - 停止声音)

于 2013-10-14T03:37:33.610 回答