2011-08-29 2 views
0

나는 fl 라이브러리를 사용중인 astra 라이브러리를 사용하고 있습니다.오류를 일으키는 as3의 비동기 이벤트 catch

내가 가진 문제는 오류가 발생하고, 일부는 재현 가능하고, 일부는 임의적으로 보인다는 것입니다.

나는 타이머에 의해 구동되는 많은 데이터에 의존하고 있지만 동시에 상호 작용할 모든 UIComponent가 있습니다.

문제 1 : 나는 텍스트 영역이 있고 위의 많은 탭이있는보기가 있습니다. 보기 내가 fl.controls::ScrollBar/thumbReleaseHandler()

문제에 # 1009 널 객체 오류가 다른 프레임으로 이동하는 동안 텍스트 영역을 스크롤하고있어 경우 2 : 두 번째는 간헐적 인 것 같다 나는 일관되게 재현 할 수없는,하지만 난 ' 사용자가 현재 탭보기를 다시 그리는 동안 타이머가 마음에 들었다.

TypeError: Error #2007: Parameter child must be non-null. 
at flash.display::DisplayObjectContainer/addChildAt() 
at fl.controls::BaseButton/drawBackground() 
at fl.controls::LabelButton/draw() 
at fl.controls::Button/draw() 
at fl.core::UIComponent/callLaterDispatcher() 

이러한 오류가 발생하기 전에 이러한 이벤트를 포착 할 수있는 방법이 있습니까?

+0

는 모든 처리기를'try' 블록으로 묶어서 옵션을 차단합니까? – www0z0k

+0

두 번째, 간헐적 인 문제가 실제로 무엇인지 말하지 않았습니다. –

+0

oops, yah, 오류 추가 – Daniel

답변

1

당신이 플래시 플레이어 10.1을 필요로 할 수 있다면, 당신은 새로운 글로벌 예외 처리 API 사용하려고 할 수 있습니다 : 그것은 여전히 ​​특히 (에로드 된 후 발생 AS2 오류를 모든 캐치되지 않는 오류를 포착하지 않습니다 http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/events/UncaughtErrorEvents.html

을 AS3 SWF), 귀하의 광고를 처리 할 수 ​​있습니다.

이외에도 코드를 스윕하고 이러한 인스턴스를 디버깅 할 수 있습니다. SWF의 디버그 버전을 실행하는 경우 잘못된 코드를 가리 키도록 줄 번호를 가져야합니다. 해결책은 종종 null 체크 만하고 객체에 대한 참조가 없다면 액션을 무시하는 것입니다.

+0

감사합니다. 문제는 이러한 오류가 외부 라이브러리에 의해 만들어진 비동기 호출의 결과라는 것입니다. 디버그는 오류가 무엇인지, 어떤 파일에 있었는지를 보여 주지만 그 이상은 아닙니다. 이 기능을 수행해야하는 것처럼 보입니다. – Daniel

관련 문제