PDA

Просмотр полной версии : Получение класса из загруженной swf


MrAngel
24.10.2011, 15:33
Зравствуйте! Прошу помочь тех, кто уже сталкивался с подобной проблемой, решить ее..

Собственно сначало код:

//loader.swf грузит game.swf

var loaderContext : LoaderContext = new LoaderContext(true, ApplicationDomain.currentDomain);

gameLoader = new Loader();
gameLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, gameLoadComleteHandler);
gameLoader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, gameLoadProgressHandler);
gameLoader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, gameLoadErrorHandler);
gameLoader.contentLoaderInfo.addEventListener(SecurityErrorEvent.SECURITY_ERROR, gameLoadComleteHandler);

gameLoader.load(new URLRequest(GAME_URL),loaderContext);

...

protected static function gameLoadComleteHandler(e:Event) : void {

var GameClass:Class;

try {
getDefinitionByName("ru.unmedia.container.GameMain") as Class;
} catch (e:Error) {
log('definition not found','('+e.message+')');
}
if(GameClass)
{
gameMain = new GameClass();
if(userDataLoaded){
initGameScreen();
}
gameLoaded = true;
}
}


теперь собсно трабл:
если в переменной GAME_URL передаешь адрес swf-файла относительно файла загрузчика(например loader.swf в одной папке с game.swf - тогда GAME_URL содержит просто "game.swf"), то все проходит без ошибок.

а если разместить swf-файл на каком-либо сервере и указать путь до него в переменной GAME_URL (например так: "www.mysite.ru/game.swf"), то возникает ошибка в строчке:
getDefinitionByName("ru.unmedia.container.GameMain") as Class;

ошибка: 'Error #1065: Переменная GameMain не определена.'

:eek::wacko:

smithy
24.10.2011, 15:40
попробуйте
gameLoader.contentLoaderInfo.applicationDomain.getDefinition("ru.unmedia.container.GameMain") as Class;

UPD:
+ попробовать в контексте указать SecurityDomain.currentDomain
+ в загружаемой флешке прописать Security.allowDomain("*");

dimarik
25.10.2011, 10:18
http://www.flasher.ru/forum/blog.php?b=332