swf的深嵌套只能在一层深处工作

时间:2014-12-03 15:46:33

标签: actionscript-3 flash loader

我在每个SWF文件中都有一个简单的swf加载程序例程。

a.swf加载/添加b.swfb.swf加载/添加c.swf

当我运行b.swf时,我清楚地看到c.swf已加载

但是当我运行a.swf时,我看到b.swf但不是c.swf

注意:我正在获取类的引用,手动实例化并将其添加到显示中,但仅适用于1级深度。以下例程重用于每个加载器。

修改如果我使用this.onResult(loader.content)而不是this.onResult(new classRef());,它可以正常工作,但我需要让它适用于classRef

    public function load():void {
        loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler);
        loader.load(new URLRequest(this.url));
    }

    private function completeHandler(event:Event):void {
        var className:String = getQualifiedClassName(loader.content);
        var classRef:Class = loader.contentLoaderInfo.applicationDomain.getDefinition(className) as Class;
        this.onResult(new classRef());
    }

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:0)

试试这个:

public function load():void {
    loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler);
    loader.load(new URLRequest(this.url), new LoaderContext(false, ApplicationDomain.currentDomain));
}