我正在使用 Loader 类将一个 swf 加载到另一个中,但是当子 swf 完成加载并添加到显示列表时,它的 Document Class 没有被实例化。我有一些应该在创建对象时执行的跟踪语句,但在加载到父 SWF 时没有发生任何事情。当我自己编译子 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'); 
    }
}
干杯!