Показать сообщение отдельно
Старый 26.12.2009, 09:11
Dos87 вне форума Посмотреть профиль Отправить личное сообщение для Dos87 Найти все сообщения от Dos87
  № 2  
Ответить с цитированием
Dos87

Регистрация: Jun 2009
Сообщений: 39
Код 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();
	}
}


Последний раз редактировалось Dos87; 26.12.2009 в 09:21.