禁用音频Flash

问题描述:

当创建一个AS3项目,并添加音频我通常做的就是拖我想用(例如用于游戏菜单),当我想停止音频I输入禁用音频Flash

SoundMixer.stopAll();

音频什么

我这样做是因为如果我说在这个菜单中去关于游戏框架然后我会有音频,但是如果我回到主框架,我原来有音乐它sorta加倍和两个不同的计时的音乐在同一时间播放。如何在不改变帧的情况下停止播放音频?

+0

你最好通过代码播放音乐,这样你就可以检查它是否已经播放 – BadFeelingAboutThis 2013-03-21 23:51:45

在这些情况下,通过代码直接启动和停止声音更容易。首先,右键单击“库”面板中的声音片段,然后选择“属性”。在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存在并正在播放,Stream声音只会播放声音。将其与普通的事件声音进行比较,无论哪种声音都会播放整个声音。

后一种方法更老派和电影中心。如果您正在编程一款游戏,那么使用前一种方法可以更好地控制代码中的音频。