首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在AS3中使用SoundChannel.stop()?

如何在AS3中使用SoundChannel.stop()?
EN

Stack Overflow用户
提问于 2014-03-09 08:25:34
回答 2查看 389关注 0票数 0

我查找的所有东西都让它看起来如此简单,但我却无法让它在我的生活中发挥作用。

我有一个简单的flash游戏,需要一个菜单来启动游戏,返回菜单并静音,我有两个不同的声音文件:一个在菜单屏幕上播放,另一个在实际游戏中播放。

我正在尝试控制它们,以便游戏音乐在游戏加载时开始,并在您返回菜单时停止。但是,当您返回到菜单时,游戏音乐会继续播放,尽管我给出了stop()命令。

我可以让stop()命令工作一次(当我退出菜单并进入游戏时),但它只能工作一次。我需要它在我每次调用stop()时停止音乐,而不仅仅是第一次。

代码语言:javascript
复制
        public var GameMusic:Sound; 
        public var MenuMusic:Sound;

        public var sc1:SoundChannel;
        public var sc2:SoundChannel;

        GameMusic = new Sound();
        GameMusic.load(new URLRequest("GameMusic.mp3"));

        MenuMusic = new Sound();
        MenuMusic.load(new URLRequest("MenuMusic.mp3"));

        sc1 = GameMusic.play(0, 99);
        sc2 = MenuMusic.play(0, 99);

        sc1.stop();

这就是我一开始所知道的。正如你所看到的,我立即告诉GameMusic停止,因为出于某种原因,如果你想使用声音通道,Flash会强制你在开始时播放所有声音。停止GameMusic这一次起作用了;只加载了菜单音乐,这是应该的。但稍后当我返回菜单时,它会继续播放。换句话说,当我的代码再次加载菜单时,它会调用sc1.stop(),但音乐仍然会继续播放。我做错了什么?

EN

回答 2

Stack Overflow用户

发布于 2014-03-09 12:57:28

基于本网站教程http://www.republicofcode.com/tutorials/flash/as3sound/

它应该是:

代码语言:javascript
复制
var muted:Boolean = false;//share this var with layer

var GameMusic:Sound = new Sound();
var MenuMusic:Sound = new Sound();
var sc1:SoundChannel = new SoundChannel();
var sc2:SoundChannel = new SoundChannel();

if(!muted){
    GameMusic.load(new URLRequest("GameMusic.mp3"));
    MenuMusic.load(new URLRequest("MenuMusic.mp3"));
    sc1 = GameMusic.play();
    sc2 = MenuMusic.play();
}else{
    sc1.stop();
    sc2.stop();
}
票数 0
EN

Stack Overflow用户

发布于 2014-03-09 17:54:37

我做错了什么?

在框架的帮助下处理主时间线和导航。

我假设你在SoundChannel上丢失了正确的引用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22276894

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档