0

我的问题是 Flash 中有几个按钮在单击时播放声音,我希望一次只有一个按钮/声音处于活动状态。问题是,如果在 Flash 窗口之外释放鼠标按钮,则最后一个按钮的声音会一直响到最后,如果同时按下另一个按钮,它也会同时开始响起,依此类推。

所以我想检查分配给除当前按下的按钮之外的任何其他按钮的 SoundChannel 是否正在播放,如果是,则停止该 SoundChannel,只让当前按钮的 SoundChannel 播放。

但是,如果此 Actionscript SoundChannel 是所有按钮的单个对象,这将不起作用,然后除了添加一个“警告”框之外,我没有看到防止多个声音同时响起的解决方案,这似乎是多余且无效的。那么,您能否为 Flash 电影中的每个按钮或对象设置一个单独的 SoundChannel,否则我如何才能做到这一点,以便无论在 Flash 窗口内部还是外部释放鼠标,都只能同时发出一个按钮声音?

4

1 回答 1

0

您可以将按钮放在容器中并为 MouseEvent.MOUSE_UP 和处理程序中添加事件侦听器以检查它的光标是否在容器之外,如下所示:

   private static function onMouseDownOutside(event:MouseEvent) : void {
         var mouseDownInsideComponent : Boolean = false;
         mouseDownInsideComponent = yourContainer.hitTestPoint(event.stageX, event.stageY, false);

         if (!mouseDownInsideComponent) {
            //stop the sound
         }
   }

只是为了在声音从容器中出来时停止声音?似乎是一种可能的解决方法。

于 2014-06-18T10:18:56.197 回答