Flex에서 순수 AS3로 Preloader 구현하기
MX패키지에 기반한 FLEX어플리케이션을 제작 중이시라면 Preloader자체를 프레임웍이 해결해주니 신경쓰지 않으셔도 괜찮습니다. CS4등의 IDE툴을 쓰고 계신다면 널리 알려진 1프레임 대기, 2프레임 본체 기법을 사용하여 Preloader를 만드시면 되니 또한 문제없습니다.
제 고민은 FLEX BUILDER 등의 개발툴이나 mxmlc컴파일러 기반으로 순수 액션스크립트 프로젝트를 진행하는 경우에 본체의 Preloading문제를 어떻게 해결하는가에 대한 것이었습니다. 이 부분을 검색해보면 다들 헛소리 자료만 한가득 있었습니다. 요점은 또 하나의 swf를 만들어서 Loader를 통해 로딩하라는 거죠(누가 모르냐? 당연히 본체의 Preloader를 구현하려는거지)
그래서 구글링을 5분정도 투자해본 결과 검색어를 잘 선택하여 다음과 같은 정보를 얻었습니다.
http://www.dreaminginflash.com/2007/11/13/actionscript-3-preloader/
결론적로 잘 됩니다.
mxmlc의 메타태그 중에 [Frame(factoryClass="")] 구문을 통해 깔끔하게 해결하고 있습니다. Flex프레임웍 자체도 Preloader문제를 해결하기 위해 아예 mxmlc컴파일러 설계단에서부터 고려되었던 기능인 듯 하네요.
위의 메타태그의 팩토리클래스에 특정 Preloader 클래스를 제작하여 넣어주면 아래와 같은 메쏘드로 처리할 수 있습니다.
if(framesLoaded===totalFrames){
nextFrame();
var main:*=new Class(getDefinitionByName("Main"))();
addChild(DisplayObject(main));
}
먼가 이 아저씨는 사회에 이바지 하시는군요. 제 인생에도 그렇고 ^^;
관련된 글:
매우 유익한 글이군요.
감사합니다 ^^