删除局部变量的事件侦听器?

时间:2011-02-15 16:42:30

标签: actionscript-3 garbage-collection

您是否必须删除具有本地范围的变量的事件侦听器?我的意思是......只要函数/方法正在运行,如果变量只存在,事件监听器是否仍然存在?

private function startSomething():void
        {
            whatever.start();
            var t:Timer = new Timer(2000,1);
            t.addEventListener(TimerEvent.TIMER, stopSomething, false, 0, true);
            t.start();
        }

private function stopSomething(e:TimerEvent):void
        {
            // do you have to remove the event listener here??

        }

2 个答案:

答案 0 :(得分:3)

由于计时器只会触发一次,因此无需删除监听器。

答案 1 :(得分:3)

如果你真的需要这样做,你可以这样做:

Timer(e.currentTarget).removeEventListener(TimerEvent.TIMER, stopSomething);

几乎所有事件目标/ currentTarget属性都引用了触发器对象。