
Код AS3:
import flash.display.DisplayObject;
import flash.display.Sprite;
import flash.display.Loader;
import flash.events.Event;
import flash.events.ProgressEvent;
import flash.events.IOErrorEvent;
public class Xxx extends Sprite
{
private var mySWF:Object;
public function Xxx()
{
loadSWF("http://blablabla.ru/someSWF.swf");
}
private function loadSWF(swfURL:String):void
{
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener (Event.INIT, loaderInitHandler);
loader.contentLoaderInfo.addEventListener (ProgressEvent.PROGRESS, loaderProgressHandler);
loader.contentLoaderInfo.addEventListener (IOErrorEvent.IO_ERROR, loaderIOErrorHandler);
loader.load (new URLRequest(swfURL));
}
private function loaderInitHandler (e:Event):void
{
e.target.removeEventListener (Event.INIT, loaderInitHandler);
e.target.removeEventListener (ProgressEvent.PROGRESS, loaderProgressHandler);
e.target.removeEventListener (IOErrorEvent.IO_ERROR, loaderIOErrorHandler);
//Вот загруженная swf'ка
mySWF = e.target.content;
//Клонируем так
var cloneMySWF:Object = cloneSWF(mySWF);
//Или так
var child1:Object = cloneSWF(mySWF.child1);
//Или так
var child2:Object = cloneSWF(mySWF).child2;
//Добавляем
this.addChild(cloneMySWF as DisplayObject);
this.addChild(child1 as DisplayObject);
this.addChild(child2 as DisplayObject);
}
private function loaderProgressHandler(e:ProgressEvent):void
{
progressBar.scaleX = e.bytesLoaded/e.bytesTotal;
}
private function loaderIOErrorHandler(e:IOErrorEvent):void
{
//Error
}
private static function cloneSWF(targetObject:Object):Object
{
var targetClass:Class = targetObject.constructor;
return new targetClass();
}
}