actionscript-3 - 禁用音频闪存

标签 actionscript-3 audio

在创建AS3项目并添加音频时,通常要做的是拖动要使用的音频(例如游戏菜单),然后在停止音频时输入
SoundMixer.stopAll();
我这样做是因为,如果我说进入该菜单中的“about”游戏框架,那么我将获得音频,但是如果我回到原本拥有音乐的主框架,则它会加倍播放,并返回两种不同的音乐时间在同一时间播放。更改帧时,如何在不禁用音频的情况下停止播放?

最佳答案

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

后一种方法更老套和以电影为中心。如果您正在编写游戏,则使用前一种方法对代码中的音频进行更多控制会更合适。

关于actionscript-3 - 禁用音频闪存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15559066/

相关文章:

actionscript-3 - ActionScript 3 - 公共(public)静态常量 - 我希望它是动态的!

actionscript-3 - AS3 - 克隆一个对象

c - 如何为 android jni 编译 Fluidsynth

javascript - 单击特定元素时暂停 HTML 音频

audio - 如何将 RAW/WAV 文件解码为数字列表?

c# - 如何使用 ColorMatrix 为图像的每个像素设置相同(恒定)的色调值?

apache-flex - 安全沙箱违规 : Lack of Policy File Permissions

actionscript-3 - 在 flex 中实现撤消重做

android - 将内部声音文件存储在我可以通过Android中的文件路径访问它们的地方

java - Android,Soundpool 类 - 循环播放声音时出现自动暂停问题