1

如果我制作一个计时器,例如

var timer:Timer = new Timer(50, 0);
timer.addEventListener(TimerEvent.TIMER, OnTimer);
timer.start();

然后我的函数结束了,你会认为这个计时器已经超出了范围,没有任何东西可以再保留它的引用了。但是,此计时器仍然有效。

所以要么我很幸运,垃圾收集器还没有运行,要么有什么东西在保留引用。如果是后者,那么我怎么知道它将被垃圾收集?

4

1 回答 1

2

计时器仍将运行并将分派事件。只需以您可以访问它的方式声明它(作为公共实例变量)并执行:

  • timer.stop();
  • timer.removeEventListener(TimerEvent.TIMER, OnTimer);- 在 Flash 中非常重要的事情
  • timer = null;- 如果确实需要释放内存,请将引用设置为 null
于 2013-02-18T20:02:27.743 回答