[Actionscript] addEventListener 이벤트를 통하여 변수를 넘겨주기
- Nest
- Development
- Category
- ETC
- Hit
- 738
- Star
- 0
addEventListener는 이벤트를 통하여 함수를 실행시킨다. 하지만 보통 방법으로는 변수를 추가로 전달시킬수는 없다.
예제의 전체코드
package {
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
public class AddEventListenerToValueSample extends Sprite {
private var _targetObject:Sprite = new Sprite();
public function AddEventListenerToValueSample() {
_targetObject.graphics.beginFill(0xFF0000);
_targetObject.graphics.drawRect(30,30,130,70);
_targetObject.buttonMode = true;
addChild(_targetObject);
var _txt:String= "text";
_targetObject.addEventListener(MouseEvent.CLICK, onClickHandler(_txt));
}
private function onClickHandler(str:*):Function {
function func(e:MouseEvent) {
trace(str);
}
return func;
}
}
}
예제의 부분코드
이벤트 핸들러 함수
private function onClickHandler(str:*):Function
{
function func(e:MouseEvent)
{
trace(str);
}
return func;
}
이벤트 실행 _targetObject.addEventListener(MouseEvent.CLICK, onClickHandler(_txt));
참고로 핸들러 함수에서 이벤트를 발생시킨 객체를 선택하려면 e.target
으로 접근할 수 있다.