复制舞台上的影片剪
反射方法: 需要复制的舞台对象,库元件必需绑定类,否则返回的是MovieClip,复制出来的对象是一个空的MovieClip
var ClassRef:Class = getDefinitionByName(getQualifiedClassName(t_mc)) as Class; var clone_mc:DisplayObject = new ClassRef(); addChild(clone_mc);
复制Loader加载的swf
ByteArray深度复制
var byteLoader:URLLoader = new URLLoader(); byteLoader.dataFormat = URLLoaderDataFormat.BINARY; byteLoader.addEventListener(Event.COMPLETE, loadCompleteHandler); var loader:Loader = new Loader(); loader.y = 200; addChild(loader); loader.contentLoaderInfo.addEventListener(Event.INIT, loadInitHandler); function loadInitHandler(evt:Event):void { var cloneLoder:Loader = new Loader(); addChild(cloneLoder); cloneLoder.loadBytes(byteLoader.data); } byteLoader.load(new URLRequest("t.swf")); function loadCompleteHandler(evt:Event):void { loader.loadBytes(byteLoader.data); }
简单原理:用URLLoader将外部的swf以二进制数据格式加载到ByteArray中,然后用Loader类的loadBytes去加载URLLoader中的ByteArray。