在FLASH 8中控制声音有两种方法,一个是传统的在帧上附加声音,这个在MV或短篇中经常使用,因为这种方法非常简单。而在FLASH游戏和应用的制作中经常使用的是另一种方法,就是使用程序控制声音的方法, FLASH提供了Sound类,就是为了让开发者解决声音控制问题。
但是,很多闪客,当然也包括我在Sound的stop事件仿佛都遇到了一点小问题。看以下代码:
var a1_sound:Sound
=
new
Sound();
var a2_sound:Sound = new Sound();
a1_sound.attachSound( " a1 " ); // 加载库中链接名为a1的声音
a2_sound.attachSound( " a2 " ); // 加载库中链接名为a2的声音
a1_sound.start( 0 , 100 ); // a1从开头播放,循环100遍
a2_sound.start( 0 , 100 ); // a2从开头播放,循环100遍
a1_sound.stop();
var a2_sound:Sound = new Sound();
a1_sound.attachSound( " a1 " ); // 加载库中链接名为a1的声音
a2_sound.attachSound( " a2 " ); // 加载库中链接名为a2的声音
a1_sound.start( 0 , 100 ); // a1从开头播放,循环100遍
a2_sound.start( 0 , 100 ); // a2从开头播放,循环100遍
a1_sound.stop();
按理说a1_sound应该停止了,a2_sound继续播放。结果却是a1和a2都停止了。我一直在此处疑惑。
后来看了看Flash8的帮助:
| 停止当前播放的所有声音(如果未指定参数),或者只停止播放在 |
原来应该使用:a1_sound.stop("a1");来停止a1_sound的播放,这样就不会影响a2_sound了。这种用法挺奇怪的。
另外,如果使用 xxx.stop("a1"); xxx为已经声明的Sound实例,例如:a2_sound.stop("a1");也能达到同样的效果,但是理解起来就更加匪夷所思了。
转载请著名出处:http://blog.csdn.net/wizim