AS3 Closures Cleanup
public class Something
{
public function doSomething(index:int) : void
{
// Async closure for timer completion event
function onComplete_doSomething(evt:TimerEvent) : void
{
// Always clean up 1st, then notify listeners
timer.removeEventListener(TimerEvent.TIMER, onComplete_Timer );
dispatchEvent(new SomethingEvent(SomethingEvent.SOMETHING_HAPPENED, index));
};
var timer : Timer = new Timer(1000, 1); // wait 1 second
timer.addEventListener(TimerEvent.TIMER_COMPLETE, onComplete_doSomething);
timer.start();
}
}