我已经知道了基于时间线编程的所有问题,但我很想知道在这种情况下垃圾收集器会发生什么。
讨论时间轴中的代码--如果代码与代码不在同一帧中,则无法访问电影剪辑,这是否会增加内存泄漏的可能性?
在我看来,时间线中的电影片段是在“播放头”当前在它的帧上时添加的,在它出去时删除。
发布于 2012-08-03 01:02:28
在以下情况下,垃圾收集器将无法清除/处置从舞台上删除的影片剪辑:
尝试删除包含太多项目的过于复杂的层次结构我没有任何数字,但我猜大概有2^32个项目?
我通常用来查看是否有内存泄漏的一种方法是在FlashDevelop中运行SWF Profiler,并在某些情况下强制GC运行,看看删除了什么。
有关更多信息,请查看以下文章:
http://active.tutsplus.com/tutorials/workflow/quick-tip-understanding-garbage-collection-in-as3/
发布于 2012-08-02 22:59:50
代码仍然是MovieClip的一部分。所以它仍然在那里。由于MovieClip是的,因此假定仍然连接到它的父级,那么它就会留下来。
(我说附加到它的父级而不是屏幕上,因为可以让父级引用子级,而子级用.parent变量引用父级,所以因为它们都有指向它们的东西,所以它们会留在内存中)。
https://stackoverflow.com/questions/11780196
复制相似问题