如果我制作一个计时器,如
var timer:Timer = new Timer(50, 0);
timer.addEventListener(TimerEvent.TIMER, OnTimer);
timer.start();
然后我的函数结束了,你会认为这个计时器已超出范围,并且没有任何东西继续引用它。但是这个计时器仍然有效。
所以要么我很幸运,垃圾收集器还没有运行,或者某些东西正在坚持参考。如果是后者那么我怎么知道它会被垃圾收集?
答案 0 :(得分:2)
计时器仍然会运行并将调度事件。只需将其声明为可以访问它的方式(作为公共实例变量)并执行:
timer.stop();
timer.removeEventListener(TimerEvent.TIMER, OnTimer);
- Flash非常重要timer = null;
- 如果你真的需要释放内存,请将引用设置为null