如何从复制的加载程序访问movieclip



我在访问复制加载程序的movieclip和子movieclips时遇到问题。我正在加载一个类似swf的

var ldr:Loader = new Loader();
var urlReq:URLRequest = new URLRequest("myswf.swf");
ldr.load(urlReq);

并用它在舞台上显示,

stage.addChild(ldr);
(ldr.content as MovieClip).star.gotoAndStop(2);

我需要一份副本,所以我用代码复制了它

var newLoader:Loader = new Loader();
newLoader.loadBytes(ldr.contentLoaderInfo.bytes);

并将其用作

var myObj:DisplayObject = newLoader;
tempMC.addChild(myObj);

现在在实际加载的swf中有一个名为"star"的movieClip,我该如何使用它???请帮忙……:(

import flash.display.MovieClip;
import flash.display.DisplayObject;
var ldr:Loader = new Loader();
var urlReq:URLRequest = new URLRequest("myswf.swf");
ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, loaderComplereHandler);
ldr.load(urlReq);

function loaderComplereHandler(event:Event) :void {
    event.target.removeEventListener(Event.COMPLETE, loaderComplereHandler);
    var mc:MovieClip = event.target.content as MovieClip;
    addChild(mc);
    mc.getChildByName("star").rotation=50;
    var newLoader:Loader = new Loader();
    newLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, loaderCopyComplereHandler);
    newLoader.loadBytes(ldr.contentLoaderInfo.bytes);
}
function loaderCopyComplereHandler(event:Event) :void {
    event.target.removeEventListener(Event.COMPLETE, loaderCopyComplereHandler);
    var mc2:MovieClip = event.target.content as MovieClip;
    mc2.x = 100;
    addChild(mc2);
    mc2.getChildByName("star").rotation=90;
}

此外,您不需要用loadBytes复制ldr。加载完成后,可以使用ldr制作myswf.swf的多个实例。。。

相关内容

最新更新