2011-06-13 3 views
1

데이터베이스에서 일부 데이터를로드하는 Flex 애플리케이션이 있습니다. 이 기간 동안 내 맞춤 프리 로더를 계속 표시하고 싶습니다.다른 외부 파일이로드 될 때까지 Flex 프리 로더를 볼 수 있어야합니다.

딜레마가 있습니다. FlexEvent.INIT_COMPLETE 핸들러에 dispatchEvent(new Event(Event.COMPLETE))을 연기하면 다음 프레임이 입력되지 않기 때문에로드가 발생하지 않습니다.

모든 데이터가 완전히로드 될 때까지 로더를 계속 실행하려면 어떻게해야합니까?

답변

0

프리 로더는 기본적으로 스프라이트입니다. 모든 flex 구성 요소는 스프라이트를 확장하므로 실제로 스프라이트를 계속 쉽게 사용할 수 있습니다. 그게 예고제 스프라이트를 제거하는 응용 프로그램 프레임 워크의 부분을 재정의하는 것이 얼마나 어려울 지 모르겠습니다. 그러나 스프라이트를 스테이지에 다시 추가 할 수 있다고 생각합니다 ... 사용자 정의 구성 요소를 사용합니다.

상태와 함께 사용할 수 있도록 UIComponent를 만들어 프리 로더 구성 요소를 추가해야 할 것입니다. 그런 다음 NEW UIComponent를 기본 상태로 설정하십시오.

다음은 내 머리 꼭대기에서 나오는 "psuedo"코드입니다. 앱에서 다음

public class MyFlexPreLoader extends UIComponent{ 

    private var var preloader:YourBasePreLoader; //This is the preloader you're already using 

    override protected function createChildren(){ 
      //Add the Preloader here! 
      preloader = new YourBasePreLoader(); 
      addChild(preloader); 
    } 
    //Also add event listeners to manipulate your preloader to show the progress of loading stuff from DB 
} 

<comp:MyFlexPreLoader includeIn="preloading"/> 

이제 사전로드에서 멀리 응용 프로그램의 currentState를 변경 할 때. 제대로 작동하려면 UIComponent에서 몇 가지 메서드를 재정의해야 할 수 있습니다.

관련 문제