AS2 - 一起播放多个声音

时间:2012-09-21 16:57:45

标签: flash actionscript-2 flash-cs4

我正在制作一个小型Flash游戏,我遇到了同时播放不同声音的麻烦。

例如,当玩家通过塔时,会播放锣音; 当玩家跳跃时,会播放跳跃声。 这两个动作可以同时发生,如果是这种情况,两个声音应该一起播放(重叠)。

这些声音声明如下:

s_jumping = new Sound();  
s_jumping.attachSound("s_jump");  
s_noise2 = new Sound();  
s_noise2.attachSound("s_gong");  

然后使用简单的s_jumping.start(0,1);s_noise2.start(0,1);调用它们(需要时) 我的代码中没有任何地方可以使用s_jumping.stop()s_noise2.stop()

这些声音在单独播放时工作正常,但在一起播放时,它将无效。第二个声音发出时,第一个声音停止。

我认为使用具有不同变量名称的new Sound()意味着这些声音将单独存在。相反,它就像一个声音凌驾于另一个声音之外。

我做错了什么?

(注意:我不是想在这里播放大量的声音。在我的测试中,同时最多有3种声音。)

更新:经过进一步测试后,如果我删除了一个背景音,那些声音就可以了。所以我似乎达到了某种极限。奇怪的是,此刻我同时播放了最多3或4个声音。根据我的阅读,至少有8个声音应该没问题! (注意:使用Flash CS4,actionscript 2和导出为Flash Player 8。)

1 个答案:

答案 0 :(得分:1)

好的,问题似乎是由于停止功能使用不当造成的。

显然,s_jumping.stop();会停止所有声音,而不仅仅是“s_jumping”声音。

要停止一个声音,您必须将其标识符(如“for Action for Action”中的声音属性中声明的那样)作为参数传递:

s_jumping.stop('s_jump');

我真的不明白这里的逻辑,但至少它现在按预期工作了。 ^^