首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无需在as3中重新启动即可播放多帧的背景音乐

无需在as3中重新启动即可播放多帧的背景音乐
EN

Stack Overflow用户
提问于 2014-11-10 14:28:17
回答 1查看 1.5K关注 0票数 0

我一直在尝试在as3中为我的游戏播放背景音乐。我想要的是有一个菜单屏幕的配乐,另一个在游戏中。在菜单帧(我的程序中的第2-5帧)之间切换时,菜单音乐不应停止或创建新的实例,而应在进入游戏级别帧(第6-10帧)时停止。

为此,我在时间轴上创建了一个“音乐”层,并在第2帧上创建了一个关键帧,并编写了代码:

代码语言:javascript
运行
复制
music=introMusic.play();

其中‘soundChannel’是音乐变量

但是,当导航到“帮助”菜单,然后返回到标题(第2帧)时,歌曲的另一个实例开始播放,尽管没有离开代码所在的音乐层的帧。

我知道如何停止播放soundChannel,但我希望声音继续播放中断通过所有菜单屏幕,直到播放器实际进入一个级别。

附注:我是as3的新手,我假设图层上关键帧(从圆形到正方形)之间的空白空间只是一个帧?我突然想到也许这是错的?

提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2014-11-10 20:37:50

如果你想做这样的事情,你绝对应该把声音从你的时间线中去掉。确保所有声音都在单独的声道中,并使用事件侦听器来检测某个声音何时停止(完成)播放。在游戏中明确要求声音停止之前,请记住移除事件侦听器。

代码语言:javascript
运行
复制
[sound channel].addEventListener(Event.SOUND_COMPLETE,replaySound);

function replaySound(e:Event)
{
    [sound channel].play();
}

像这样的东西可以工作(我只是快速编写了它,所以在实现它之前,您需要检查一下as3文档)。

然后,确保在切换帧或其他任何东西时(例如,当您想要播放游戏中的声音时),在停止声音之前删除事件侦听器。

对任何其他声音执行相同的操作。

有关详细信息,请参阅soundChannel文档上的the soundComplete event

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

https://stackoverflow.com/questions/26837984

复制
相关文章

相似问题

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