Flex에서 Event dispatch시에 해당 이슈가 발생할 경우에 대한 대처.


이는 dispatch에서 발생하는 문제가 아니라 해당 이벤트 핸들러에서 발생하게 된다.


A 이벤트를 Raise를 하고 B 이벤트 핸들러로 처리하는 경우이다.


예.

//정상 처리, Use right

main.addEventListener(CustomEventA.DataSend, csEventHandler, false, 0, true);

//비정상 이벤트 등록, Use wrong

main.addEventListener(CustomEventB.DataSend, csEventHandler, false, 0, true);


private function csEventHandler(e:CustomEventA):void

{

//handle events

}


CustomEventA가 Raise되었을때는 정상 동작한다.

CustomEventB가 Raise가 되면 dispatch쪽에 애러가 나지만 실제 csEventHandler가 호출되는 순간에 제목과 같은 애러가 뜬다. 애러나는 라인이 dispatch쪽이라 찾기가 어려우므로 글로 남긴다.

"TypeError: Error #1034: Type Coercion failed: cannot convert CustomEventB@64e6ca1 to CustomEventB 이런식으로 애러가 뜨게 될 것이다.

CustomEventB 처리를 위한 새로운 이벤트 핸들러를 등록해주면 해결이 가능하다.



by 무위자연 2015. 1. 9. 13:54
| 1 |