创建AS3项目并添加音频时,我通常会拖动我想要使用的音频(例如游戏菜单),当我想停止输入音频时
SoundMixer.stopAll();
我这样做是因为如果我说在这个菜单中转到关于游戏框架然后我将获得音频,但是如果我回到我最初拥有音乐的主框架那么它可以加倍并且两个不同的时间音乐正在同时播放。如何更改帧时不必禁用音频,如何停止播放?
答案 0 :(得分:0)
在这些情况下,通过代码直接启动和停止声音更容易。首先,右键单击“库”面板中的声音片段,然后选择“属性”。在“ActionScript”选项卡中,选中“为ActionScript导出”,并为其命名,例如,音乐。然后,要播放和停止此剪辑,您可以使用以下代码:
import flash.media.Sound;
// create the music Sound object so that we can start playing
var music : Sound = new Music();
var musicChannel : SoundChannel;
// play the music
// the play() method returns a SoundChannel,
// which you can later use to stop the music
// notice that we first check to make sure musicChannel is null
// if it isn't null, music is already playing, so don't play it twice
if(musicChannel != null) musicChannel = music.play();
// when you switch screens, stop the music
// clear out the channel, so that we know that it is safe to start the music again
musicChannel.stop();
musicChannel = null;
或者,如果您通过将音乐和声音放在时间轴上来播放音乐和声音,则可以使用帧的同步设置来停止它。在时间轴上,创建一个关键帧,切换屏幕并希望音乐停止播放。选择该帧,然后将要停止的声音片段拖动到该帧上。在“属性”面板中,将“同步”选项更改为“停止”。这将导致仅选定的声音停止播放。
另一种方法是创建一个空的MovieClip,声音放在其中。将“同步”设置更改为“流”,然后用空帧填充剪辑,以便播放整个剪辑。然后,如果您将此剪辑放在主菜单屏幕上,那么它只会在主菜单中播放。只要MovieClip存在并正在播放,流声音就会播放声音。将此与正常的事件声音进行比较,无论如何都将播放整个声音。
后一种方法更老派,以电影为中心。如果您正在编写游戏,那么使用前一种方法让您更好地控制代码中的音频会更合适。