在线等答案:flash AS2 删除影片剪辑问题

来源:百度知道 编辑:UC知道 时间:2024/06/17 23:51:38
我在一FLASH影片中创建了一个空的影片剪辑加载了另一个SWF文件,使其在主场景中播放,这不是什么新鲜的问题,不过我发现不断加载该影片剪辑,不断删除该影片剪辑,内存会一直增加,也就是一直重复以下动作:
创建空的影片剪辑,加载A.SWF文件,removeMovieClip该影片剪辑,也就是A.SWF文件,再创建空的影片剪辑,再加载A.SWF文件,再删除,不断重复,内存会一直增加,这样算下去重复个几百遍,可能会发生影片崩溃中,求教如何解决问题,特别是AS2的内存回收,另外我很奇怪,既然加载进来的影片剪辑已经卸载了,为什么重新加载该影片剪辑会比上一次加载后的内存使用率要高?

AS2只能自动回收,无办法!

第一.被加载的swf是否有计时器没有删除.如果有用计时器而又没有清除的话.内存会不断被占用.
第二.你是用什么方法加载影片的呢.moviecliploader还是loadmovie,如果用moviecliploader的话.请在再次加载的时候首先关闭正在加载的流媒体,否则该请求不会停.同样会占用内存.
其次,flash不像C++那种会把内存暴露给用户.它有自己的一套回收机制.最佳的做法就是先for in一次对象,把对象里面所有的动态属性都delete掉.如果该对象包含子对象,则需要执行removemovieclip的方法把其删除,接下来就是等待flash去回收了.