FlashPlayer10的Loader.unloadAndStop

Adobe发布了FlashPlayer10 Beta2。关键的更新之一是给Loader加入新的unloadAndStop。有人可能不明白为什么Loader有unload,还要新加一个 unloadAndStop。有次我做一个讲座的讲稿,里面需要调用几个演示的swf。测试的时候,先是发现unload没有清除加载swf中播放的声 音,我用了SoundMixer.stopAll()处理。但又发现在几个演示之间来回切换(切换时都会unload上一个swf),FP占用的内存会持 续增长,即使切换到没有演示的页面,内存占用也没有减少。试了很多办法,发现只有停止被加载内容里所有的Event监听器和媒体播放(包括 Moviecip),才能成功的进行卸载。当时在网上搜了一下,发现这是FP9垃圾回收机制的一个Bug。如果没有及时有效的清理掉内存中的垃圾,一个稍 微复杂点的网站都有可能让用户的浏览器垮掉。

还好,这次的FP更新中Adobe及时的做了补救。unloadAndStop会以递归的形式关闭被加载内容中所有的监听器、声音和Netstream等等对象,从而使被卸载内容更快的被垃圾处理器清除。可惜FP9中仍然不能简单快速的清理内存中的垃圾。

你可能感兴趣的:(浏览器,Adobe,FP)