AS 3可視オブジェクトのコピー

1220 ワード


舞台のカットを複製する
反射方法:コピーするステージオブジェクト、ライブラリコンポーネントはクラスをバインドする必要があります.そうしないと、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をロードします.