Показать сообщение отдельно
Старый 14.09.2010, 20:55
AlexsWulf вне форума Посмотреть профиль Отправить личное сообщение для AlexsWulf Найти все сообщения от AlexsWulf
  № 1  
Ответить с цитированием
AlexsWulf

Регистрация: Oct 2008
Адрес: Воронеж
Сообщений: 75
По умолчанию referenceerror error 1065 при загрузке внешней swf

Доброго времени суток.
Есть проект AS в FB. Требуется вместо подключенных swc к проекту подкружать их на этапе загрузки проекта.

Написал следующий код:
Код AS3:
package
{
	import by.typing.graphics.pixel.cursors.MoveCursor;
 
	import flash.display.Loader;
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.events.IOErrorEvent;
	import flash.events.SecurityErrorEvent;
	import flash.net.URLRequest;
	import flash.system.ApplicationDomain;
	import flash.system.LoaderContext;
 
		[SWF(width="760", height="730", backgroundColor="0xF7F7F7")]
		public class testLibrary extends Sprite
		{
 
			// Массив адресов библиотек
			protected var libs:Array;
			// Индекс текущей библиотеки для загрузки
			protected var libsLoadIndex:Number;
			// Loader для загрузки библиотек
			protected var libLoader:Loader;
			// Имя класса основного приложения
			protected var mainApplicationClassName:String;
 
			// Запишем время старта и окончания загрузок
			protected var preloaderInitTime:Number;
			protected var loadAppCompleteTime:Number;
			protected var loadLibsCompleteTime:Number;
 
			public function testLibrary()
			{
				libs = new Array();
				//libs.push("http://cs4288.vkontakte.ru/u8322762/48edb8c2f31057.zip");
				libs.push("http://cs4288.vkontakte.ru/u8322762/3b560024de9455.zip");
 
				preloaderInitTime = (new Date()).getTime();
 
				libsLoadIndex = 0;
				//MonsterDebugger.trace(this, "1");
				libLoader = new Loader();
				libLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, libLoaderInitHandler);
				libLoader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, libLoaderErrorHandler);
				libLoader.contentLoaderInfo.addEventListener(SecurityErrorEvent.SECURITY_ERROR, libLoaderErrorHandler);
				loadLibs();
			}
 
			protected function initial():void {
				trace(this,  libLoader.contentLoaderInfo.applicationDomain.hasDefinition('NewBUtAssets'); 
// Выдает true
				trace(this,  ApplicationDomain.currentDomain.hasDefinition('NewBUtAssets')); 
// Выдает false
				stage.addChild( new MoveCursor());
				stage.addChild( new NewBUtAssets());
				//stage.addChild(new Mars());
 
			}
 
 
			// Начинает загрузку библиотек
			public function loadLibs():void
			{
				loadAppCompleteTime = (new Date()).getTime();
				if (libs && libs.length > 0)
					loadLib();
				else
					libsLoaded();
			}
 
			// Загрузка текущей (libsLoadIndex) библиотеки
			protected function loadLib():void
			{
				var urlRequest:URLRequest = new URLRequest(libs[libsLoadIndex]);
				var loaderContext:LoaderContext = new LoaderContext(false, ApplicationDomain.currentDomain);
				libLoader.load(urlRequest, loaderContext);
				//MonsterDebugger.trace(this, "2");
			}
 
			protected function libsLoaded():void
			{
				loadLibsCompleteTime = (new Date()).getTime();
				initial();
			}
 
			protected function libLoaderInitHandler(event:Event):void
			{
				//MonsterDebugger.trace(this, "3");
				libsLoadIndex++;
				if (libsLoadIndex == libs.length)
					libsLoaded();
				else
					loadLib();
			}
 
			protected function libLoaderErrorHandler(event:Event):void
			{
				trace("libLoaderErrorHandler: " + event);
			}
	}
}
Код AS3:
Подключены две библиотеки 
одна включена в код из нее вызывается stage.addChild( new MoveCursor()); 
 
у второй стоят надстройки что она внешняя из нее вызывается stage.addChild( new NewBUtAssets());
 
В результате выполнения падаем на stage.addChild( new NewBUtAssets()); 
с ошибкой ReferenceError: Error #1065: Переменная NewBUtAssets не определена.

во вложении полный код проекта с библиотеками

Подскажите в чем причина? Что сделано не так?
Заранее благодарю за ответ.
Вложения
Тип файла: rar testLibrary.rar (47.0 Кб, 67 просмотров)


Последний раз редактировалось AlexsWulf; 14.09.2010 в 21:03.