| AlexsWulf |
14.09.2010 20:55 |
referenceerror error 1065 при загрузке внешней swf
Вложений: 1
Доброго времени суток.
Есть проект 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 не определена.
во вложении полный код проекта с библиотеками
Подскажите в чем причина? Что сделано не так?
Заранее благодарю за ответ.
|