我在访问复制加载程序的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
的多个实例。。。