Показать сообщение отдельно
Старый 27.03.2010, 02:53
NewFolder вне форума Посмотреть профиль Отправить личное сообщение для NewFolder Найти все сообщения от NewFolder
  № 1  
Ответить с цитированием
NewFolder
 
Аватар для NewFolder

Регистрация: Nov 2006
Сообщений: 155
По умолчанию Подгружаемый swf и общий интерфейс

Есть две swf'ки: main.swf подгружает test.swf
Они обе подключают один и тот же интерфейс ITransition
Document Class файла test.swf реализует этот интерфейс
Когда я подгружаю его в main.swf и пытаюсь конвертировать в ITransition, то получаю null
Перепробовал все варианты ApplicationDomain в LoaderContext - ничего не помогло

Main.as
Код AS1/AS2:
package {
	...
 
	import transitions.ITransition;
 
	public class Main extends Sprite {
		protected var _loader:Loader;
		protected var _transition:ITransition;
 
		protected function onSWFLoaded(e:Event = null):void {			
			initLoader();
			_loader.load(new URLRequest("test.swf"));
		}		
 
		//Once file is successfully loaded
		protected function loadComplete(e:Event):void {
			trace(_loader.content as ITransition);//Выдает null, а мне нужен объект
		}
 
		//Once load error happened
		protected function loadError(e:*):void {
			//ERROR
		}		
 
		//Destroys old object and creates new one
		protected function initLoader():void {
 
			//Destroy old loader object
			if (_loader) {
				_loader.contentLoaderInfo.removeEventListener(Event.COMPLETE, loadComplete);
				_loader.contentLoaderInfo.removeEventListener(IOErrorEvent.IO_ERROR, loadError);
				_loader.contentLoaderInfo.removeEventListener(SecurityErrorEvent.SECURITY_ERROR, loadError);
				_loader = null;
			}
 
			//Init the new loader
			_loader = new Loader();
			_loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComplete);
			_loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, loadError);
			_loader.contentLoaderInfo.addEventListener(SecurityErrorEvent.SECURITY_ERROR, loadError);
		}
	}	
}
Test.as
Код AS1/AS2:
package {
	...	
	import transitions.ITransition;
 
	public class Test extends Sprite implements ITransition {
 
		//Constructor
		public function TestTransition() {
 
		}
 
		public function start():void {
			trace("Started");			
		}
 
	}
 
}
__________________
Нет ничего невозможного