[AS 3.0] 이벤트 리스너에 인수 함께 전달하기(1)
원문 : http://blog.workrooom.com/?eid=932402
오브젝트에 이벤트 리스너를 등록할 때 이벤트외의 인수를 함께 보내는 방법이다.
다른 이벤트에서도 사용 가능한지 하나하나 확인은 못 해봤지만,
MouseEvent에서 이상 없이 동작하는 걸로 봐서 다른 이벤트에서도 사용할 수 있을 것 같다.
잘만 사용하면 유용한 코드가 될지도…
package {
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
// SWF Metadata
[SWF(width="400", height="300", backgroundColor="#FFFFFF", framerate="30")]
public class Main extends Sprite {
public function Main():void {
var btn:Sprite = new Sprite();
btn.graphics.clear();
btn.graphics.beginFill(0x0099FF);
btn.graphics.drawRect(0, 0, 100, 50);
btn.graphics.endFill();
btn.buttonMode = true;
btn.x = stage.stageWidth * 0.5 - btn.width * 0.5;
btn.y = stage.stageHeight * 0.5 - btn.height * 0.5;
addChild(btn);
btn.addEventListener(MouseEvent.CLICK, onClickHandler("0123456789"));
}
private function onClickHandler(value:String):Function {
function myfunc(event:MouseEvent):void {
trace(value);
trace(event.target);
}
return myfunc;
}
}
}
//Output
//0123456789
//[object Sprite]
