as2的sound是要绑定在一个mc上,才能独立控制,否则就是一个全局sound。
但这里有个很不经意时会触发的bug,使sound对象失效。
即动态改变了sound所绑定的mc的name。
运行上面的代码,当点击鼠标后,声音就停了,且所有sound的属性方法全部失效,当把_root.mc._name再次改为'mc'时,又可以启动了。
而且并不是改变sound的所绑定的mc名称才会触发此bug,只要改变了所绑定mc路径上的任意一个mc都会触发。
也就是说所绑定的mc是_root.mcA.mcB.mcC,只要改变mcA,mcB,mcC其中一个,该bug就会出现,这是比较危险的地方。
好在改变_name属性的机会不多,所以这个bug貌似也没多少人注意......
对于as2的sound机制已经变了,所以这个bug可能就此成为历史了
但这里有个很不经意时会触发的bug,使sound对象失效。
即动态改变了sound所绑定的mc的name。
_root.createEmptyMovieClip(
"
mc
"
,
0
);
var s:Sound = new Sound(mc);
s.attachSound( ' mp3 ' );
s.onSoundComplete = s.start;
s.start();
onMouseDown = function()
{
_root.mc._name='mc2';
}
var s:Sound = new Sound(mc);
s.attachSound( ' mp3 ' );
s.onSoundComplete = s.start;
s.start();
onMouseDown = function()
{
_root.mc._name='mc2';
}
运行上面的代码,当点击鼠标后,声音就停了,且所有sound的属性方法全部失效,当把_root.mc._name再次改为'mc'时,又可以启动了。
而且并不是改变sound的所绑定的mc名称才会触发此bug,只要改变了所绑定mc路径上的任意一个mc都会触发。
也就是说所绑定的mc是_root.mcA.mcB.mcC,只要改变mcA,mcB,mcC其中一个,该bug就会出现,这是比较危险的地方。
好在改变_name属性的机会不多,所以这个bug貌似也没多少人注意......
对于as2的sound机制已经变了,所以这个bug可能就此成为历史了