Adobe Flex 3中的终结器

时间:2010-07-29 12:51:08

标签: flex finalizer

使用Adobe Flex 3,有没有办法指定终结者?

2 个答案:

答案 0 :(得分:5)

ActionScript 3中没有finaliser /析构函数的概念,即使在AVM /字节码级别也是如此。

答案 1 :(得分:0)

即使在ActionScript本身没有析构函数/终结器这样的东西,我也会认为在你不再需要它时,有一个释放类中所有资源的方法是一种好习惯。

垃圾收集只捕获任何地方不再需要的对象,并使用引用计数来确定何时出现这种情况。因此,只要存在未删除的事件侦听器,循环依赖项(彼此引用的对象)等,您可能不会注意到它,但是您的内存使用量将不断增加,并且GC根本不会释放这些资源。

因此,应该采用destroy()finalize方法:

  • 删除所有事件侦听器
  • 在嵌套对象上调用destroy()finalize()
  • delete字典中的所有强对象键
  • 将所有对象类型变量设置为null(原始值不可重置)

对于显示对象,在调度Event.REMOVED_FROM_STAGE时调用此方法通常不是一个坏主意。