Loader 클래스를 사용하여 swf 하나를 다른 SWF로로드하지만 하위 SWF로드가 완료되고 표시 목록에 추가되면 문서 클래스가 인스턴스화되지 않습니다. 객체를 만들 때 실행해야하는 trace 문이 몇 개 있지만 부모 SWF에로드 할 때 아무 것도 일어나지 않습니다. 자식 SWF를 독자적으로 컴파일하면 Document Class가 예상대로 실행됩니다.로드 중 SWF의 문서 클래스
그래서 궁금한데 ... 어떻게 하위 SWF의 문서 클래스를 Loader.content
과 연결합니까?
코드는 아래 Kishi의 솔루션으로 업데이트되었습니다.
public class Preloader extends Sprite {
import flash.net.*;
import flash.display.*;
import flash.events.*;
// code in parent SWF's Document Class (Preloader.as)
private var swfLoader:Loader;
public var mainMovie:MovieClip;
public function Preloader(){
swfLoader = new Loader();
swfLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, loaderDone);
swfLoader.load(new URLRequest("mainmovie.swf"));
}
private function loaderDone(e:Event):void {
// Cast Loader.content to MovieClip
mainMovie = MovieClip(swfLoader.content);
mainMovie.addEventListener(Event.ADDED_TO_STAGE, mainMovieAddedListener);
addChildAt(mainMovie, 0);
}
private function mainMovieAddedListener(e:Event):void {
// init() not necessary
}
}
// MainMovie.as runs after casting swfLoader.content to MovieClip
public class MainMovie extends Sprite {
public function MainMovie(){
trace('MainMovie WHATTUP');
}
public function init():void {
trace('init');
}
}
건배!