플렉스로 대형 어플리케이션 프로젝트를 하다보면 프리로더를 수정하여 사용할 때가 반드시 오는데 이때 발생하는 문제는, 로딩이 길어질 때 스테이지를 클릭하면 마우스 이벤트에 가끔 오작동을 일으켜 런타임 에러를 발생시킬 때가 있다는 것이다. 에러를 한번 살펴보자.
TypeError: Error #1009: Cannot access a property or method of a null object reference.에러를 만나면 당황스럽고 짜증이 밀려오는데, 이유는 mouseCatcher가 바로 null 이라는 것.
at mx.managers::SystemManager/stageEventHandler()[E:\dev\trunk\frameworks\projects\framework\src\mx\managers\SystemManager.as:3275]
코드를 살펴보면 클릭이벤트 핸들러가 다음과 같이 mouseCatcher가 null 체크 하지않고 사용되고 있다.
구글링 해보니 이에 관련된 버그는 Adobe Bug System에 이미 있었고 SDK 버그로 분류되어 Flex4에서 고쳐졌다. [버그 바로가기] 하지만 아직 Flex3에서는 발생되고 있으니 우회방법을 사용하여 회피해야 한다.
이에대해 한 일본인 블로거가 해결책을 제시하였는데 [바로가기] 간단하게 프리로더 상태에서 마우스다운 이벤트 자체를 프리로더에서 걸고 프리로드가 완료되면 마우스다운 이벤트를 해지하는 것이다.
해결을 위한 코드는 다음과 같다.
'프로그래밍 > Flash/Flex' 카테고리의 다른 글
| Flash Catalyst로 디자이너 관점에서 플렉스 App 제작하기 3부 (2) | 2010/02/19 |
|---|---|
| Flash Catalyst로 디자이너 관점에서 플렉스 App 제작하기 2부 (0) | 2010/02/19 |
| Flex Preloader 에서 마우스 이벤트 런타임 에러 버그 해결방법 (0) | 2010/02/12 |
| [Flex Component] 스타일이 자유로운 풍선 ToolTip (0) | 2010/02/10 |
| 플래시의 성능 개선을 위한 버그신고 합시다 (0) | 2010/02/09 |
| Flash Catalyst로 디자이너 관점에서 플렉스 App 제작하기 1부 (8) | 2010/01/30 |


댓글을 달아 주세요