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