代码改变世界

关于加载外部SWF文件的声音控制

2009-03-30 21:13  libiver  阅读(175)  评论(0编辑  收藏  举报

 声明:欢迎任何人和组织转载本blog中文章,但必须标记文章原始链接和作者信息。

本文链接:http://blog.csdn.net/li_007/archive/2009/03/30/4037090.aspx

开拓进取的小乌龟------->CSDN点滴点点滴滴Blog

今天加载了一个有声音的swf,然后在没播放完成的时候,又加载了另一个swf,同样是有声音的,结果发现奇怪的事情出现了,先前的swf视频是销毁,unload不见了,可是声音还是在播放的,结果发现内存也没有被释放,过了好久才释放(我的代码中如果播放完成或者什么的都是有销毁的过程的,不过有点对Actionscript 3的垃圾回收机制搞不懂了,现在还在思考中。。。。),还害的PM等了我好长时间。

 

首先来说说声音的问题吧,其实以前是没注意,今天才发现,后来查查Adobe Docs后发现也很简单,先看看Adobe Docs中flash.media.sound class的描述截图:

Flash Media Sound

特别是最后红色线标记的,告诉我们控制外部加载的swf file,使用SoundMixer Class的属性,OK。看看SoundMixer类后就发现很简单,这个类提供了静态的方法StopAll来停止当前正在播放的声音。也看截图吧:

Flash Media SoundMixer StopAll

 好了,修改前面文章发的那个类(http://blog.csdn.net/li_007/archive/2009/03/28/4032276.aspx)如下:

 

测试,能跟达到要求,实现控制,OK,大功告成,回家了。。。。。。。

 

关于那个内存的释放的问题,要慢慢仔细研究后在来同大家分享。