addEventListener에 Parameter있는 함수 추가와 이것을 removeEventListener에서 제거해주기

|
addEventListener(이벤트명, 실행할 함수명)

함수원형을 보면 상기와 같다. Parameter가 하나 더 있지만 걍 넘어가자.
함수명의 규칙은 ()를 제외한, 함수명이다. 그렇게되면 알아서 이벤트를 넘겨준다.
사실 함수명이라고 이야기는 하지만, String이 넘어가는 것이 아니라, Function 오브젝트가 넘어간다.

addEventListener(EffectEvent.EFFECT_END, endEffectHandler);

function endEffectHandler(e:EffectEvent):void {
    어쩌고 저쩌고.........
}

함수에 Parameter를 넘겨주기위해서는 Function을 만들면 된다.

addEventListener(EffectEvent.EFFECT_END, function():void { endEffectHandler(param);});

function endEffectHandler(param:String):void {
    어쩌고 저쩌고.........
}

이벤트까지 넘겨주기위해서는

addEventListener(EffectEvent.EFFECT_END, function(e:EffectEvent):void { endEffectHandler(e, param);});

function endEffectHandler(e:EffectEvent, param:String):void {
    어쩌고 저쩌고.........
}

하지만, 이럴경우 removeEventListener에서 제거할 수가 없다.
그도 그럴것이 생성한 function 오브젝트를 참조할 수 있는 변수가 없기때문이다.

설마, removeEventListener(EffectEvent.EFFECT_END, function():void { endEffectHandler(param);}); 이게 되리라 생각하지는 말자.

뭐........ 그러면 변수를 만들어주면 되지.

private var tmpFunction:Function;

addEventListener(EffectEvent.EFFECT_END, this.tmpFunction=function(e:EffectEvent):void { endEffectHandler(e, param);});

removeEventListener(EffectEvent.EFFECT_END, this.tmpFunction);


저작자 표시 비영리 변경 금지
Trackback 0 And Comment 0

VBox와 List

|

VBox와 List의 차이는 몇가지 있지만,
중요한 차이는 미리 만들어 놓느냐와 필요할때 생성하느냐의 차이이다.

200개의 리스트를 VBox로 addChild한다면 200개의 리스트는 보이든 보이지 않든 이미 그려져있을 것이다.
때문에 메모리 점유율도 높을뿐더러, 움직임도 많이 버벅거릴 수밖에 없다.

반면에 List는 화면에 보이는 항목만 그려놓고, 스크롤을 움직일때 생성한다.
한번 해보면 퍼포먼스의 차이를 느낄 수 있을 것이다.

자세한 내용은 아래문서 참조. ↓

http://www.awholenewweb.com/blog/?p=27
저작자 표시 비영리 변경 금지
Trackback 0 And Comment 0
prev | 1 | 2 | next