private function handleCreationComplete():void { sampleButton.addEventListener(MouseEvent.CLICK, createClickListener(1)); sampleButton.addEventListener(MouseEvent.CLICK, createClickListener(2)); } private function createClickListener(clickLimit:int):Function { var clickCount:int = 0; return function(mouseEvent:MouseEvent):void { clickCount++; trace("Click limit", clickLimit, "registering click", clickCount); if (clickCount >= clickLimit) { trace("Click limit", clickLimit, "no longer listening"); mouseEvent.target.removeEventListener(MouseEvent.CLICK, arguments.callee); } } }