Actionscript 3 AS3使用A.swf加载器加载B.swf

Actionscript 3 AS3使用A.swf加载器加载B.swf,actionscript-3,Actionscript 3,问题是,B.swf是主要的应用程序,因为它很大,我使用单独的A.swf加载B.swf,然后添加到stage。但在这种情况下,B.swf不能正常工作(有些功能可以工作,但有些功能不能工作),这是关于在这种情况下什么是主要阶段的辩护。当我直接加载B.swf时,它工作得非常好,所以有没有办法用A.swf加载B.swf,然后“更改”主时间线/阶段以指向B.swf,这样B就可以完全正常工作?您是否尝试过像这样将B.swf加载到currentDomain中: var context:LoaderContex

问题是,B.swf是主要的应用程序,因为它很大,我使用单独的A.swf加载B.swf,然后添加到stage。但在这种情况下,B.swf不能正常工作(有些功能可以工作,但有些功能不能工作),这是关于在这种情况下什么是主要阶段的辩护。当我直接加载B.swf时,它工作得非常好,所以有没有办法用A.swf加载B.swf,然后“更改”主时间线/阶段以指向B.swf,这样B就可以完全正常工作?

您是否尝试过像这样将B.swf加载到currentDomain中:

var context:LoaderContext = new LoaderContext(false, ApplicationDomain.currentDomain);
yourLoader.load(new URLRequest("B.swf"), context);  

当然要记住添加所有事件:)如complete和ioerror,

我不知道这是否能帮助您,但这是一个实时更新系统,我使用FlashDevelop的预加载程序完成了以下操作:

public function Preloader() 
{
        var mLoader:Loader = new Loader();  
        var mRequest:URLRequest = new URLRequest("ABSOLUTE URL");
        mLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onCompleteHandler);
        mLoader.load(mRequest);

        function onCompleteHandler(loadEvent:Event):void 
        {
            addChild(loadEvent.currentTarget.content);
        }

        if (stage) {
            stage.scaleMode = StageScaleMode.NO_SCALE;
        }

        addEventListener(Event.ENTER_FRAME, checkFrame);
        loaderInfo.addEventListener(ProgressEvent.PROGRESS, progress);
        loaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioError);

        // TODO show loader
}

没问题,您可以使用相同的东西加载库,如代码或资源(例如图像),您希望其他应用程序元素可以轻松使用这些代码或资源。