|
|
1
7
其他地方:
我确信其他人会告诉你在将侦听器添加到阶段时使用弱引用,但是无论如何你应该删除侦听器。如果不这样做,当您从显示列表中删除mySprite并且没有其他引用时,将有资格使用GC并最终从内存中清除。但在此之前,handleStageResize()中的代码将继续执行。 |
|
|
2
4
我将继续@Juan的回答-GC需要作为应用程序设计的一个关键方面从根本上考虑。如果您创建了一个对象,您必须知道对它的每个引用,并删除每个引用并将其置空以标记properly@. 如果你在数组中引用那个对象,它就计数,如果你在监听器中引用它,它就计数,如果你通过一个局部变量引用它,它也计数(虽然只在函数的生命周期内),如果它只是在显示列表中,它就一定计数,并且一直计数。 只是为了确保 我几乎总是为任何对象编写一个public destroy()方法来处理内部对象层次结构(父对象对子对象调用destroy,子对象对任何子对象调用destroy等等)。仅仅删除/取消父级而不对每个子级执行操作是糟糕的GC管理。
大多数情况下-只是有条不紊的-这不是火箭科学,但你必须小心。
@即使你这么做了,flash也会自己决定什么时候进行扫描。我们所能做的最好的事情就是确保一个对象被正确地标记并且 信任 它将被有效地处理。 |
|
|
3
0
我不打算贴这个例子,但我会解释一下。你在这里描述了两种情况。
AS3以不同的方式处理内存和处理器操作。
当有许多方法相互引用而没有“关闭循环”时,就会发生处理器溢出。 |
|
|
nabster023 · 拉伸和旋转电影剪辑而不失真 8 年前 |
|
|
BadmintonCat · 获取数组排序的索引 8 年前 |
|
|
Dimentio · 无限循环(动作脚本3) 8 年前 |
|
|
steph45 · 它们是一种在数组中找到最接近0的数字的方法吗? 8 年前 |
|
|
AeroKLiam · AS3-使用组合框进行真/假测验 8 年前 |