[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]
Share

0 Comments »

No comments yet.

RSS feed for comments on this post. TrackBack URI

Leave a comment

This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.
(c) 2012 blog.flasia.com | powered by WordPress with Barecity