BulkLoaderdㅔ는 크게 2개의 이벤트로 나눌 수 있따
BulkProgressEvent에서
PROGRESS와 COMPLETE이다.
PROGRESS는 데이터를 로딩할 때 계속 호출되는 이벤트이고, COMPLETE는 모든 데이터를 불러왔을 때 호출되는 이벤트이다.
progress는 로딩의 진행상황 같은걸 알 때 쓰이는데, 사실 나는 이게 로딩화면 말고 과연 쓰이는 곳이 있을까 의문이다 ( --;) 하지만 있음으로 해서 매우 훌륭한 이벤트임은 틀림없다.
한 클래스에서 좀 로더를 여러개 쓰기 싫어서 몇 가지 삽질을 했고 내린 결론이다.
1.
알다시피 이벤트 기반의 프로그램은 (이게 시분할을 해서 돌아가는건지 모르겠지만) 리스너를 마구 건들면 안되는데 weakreference 로 참조하여 둘 다 호출을 하면 중복호출이 혹시 안되지 않을까 했다.
결론: 둘다 된다. GC에서 reference로 체크를 안해서 빨리 날릴 뿐이지 뭐 별다를 건 없었다. 역시 add를 해줬으면 remove를 해줘야한다.
2.
그 다음엔 리스너를 add한 후 start하고 리스너를 remove 한 다음에 다른 리스너를 애드를 하면 어떻게 될까?
이벤트 기반이라 로딩은 따로 돌아가고 프로그램은 계속 다음 라인으로 넘어간다. 즉 로딩하기 전에 remove를 하면 어떻게 될까?
결론: ㅎㅎㅎ역시 ㅎㅎㅎ 안됨 ㅎㅎㅎ
최종도출결론: 그래서 리스너를 두 개로 나누었습니다.
진작에 나눌것을.
...하아...
'study > as3' 카테고리의 다른 글
Flash Builder(Flex)에서 arguments(FlashVars) 사용하기 (0) | 2012.06.27 |
---|---|
재귀적 방식을 이용한 Movieclip 의 정지와 재생 (0) | 2012.06.07 |
Movieclip 여러개를 띄우기(duplicate movieclip, movieclip deepcopy) (0) | 2012.05.31 |
Action Script에서의 Deep copy (0) | 2012.05.30 |
[AS3]머리 아파서 쓰는 몇 가지 정리들 (0) | 2012.04.12 |