Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 为什么不是';这垃圾不收了吗_Actionscript 3 - Fatal编程技术网

Actionscript 3 为什么不是';这垃圾不收了吗

Actionscript 3 为什么不是';这垃圾不收了吗,actionscript-3,Actionscript 3,如果我做了一个计时器,比如 var timer:Timer = new Timer(50, 0); timer.addEventListener(TimerEvent.TIMER, OnTimer); timer.start(); 然后我的函数结束了,你会认为这个计时器已经超出了作用域,没有任何东西再保持它的引用。然而,这个计时器仍然工作 所以要么是我运气好,垃圾收集器还没有运行,要么是有东西抓住了一个引用。如果是后者,那么我如何知道它将被垃圾收集?计时器仍将运行,并将调度事件。只需以您可以访

如果我做了一个计时器,比如

var timer:Timer = new Timer(50, 0);
timer.addEventListener(TimerEvent.TIMER, OnTimer);
timer.start();
然后我的函数结束了,你会认为这个计时器已经超出了作用域,没有任何东西再保持它的引用。然而,这个计时器仍然工作


所以要么是我运气好,垃圾收集器还没有运行,要么是有东西抓住了一个引用。如果是后者,那么我如何知道它将被垃圾收集?

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

  • timer.stop()
  • timer.removeEventListener(TimerEvent.timer,OnTimer)-在Flash中非常重要
  • timer=null-如果确实需要释放内存,请将引用设置为null

您必须删除侦听器