Flash - не удается получить доступ к классам в другом SWF - PullRequest
1 голос
/ 23 февраля 2011

Я пытаюсь загрузить локальный SWF-файл и использовать классы в этом SWF (это только код SWF, ничего в библиотеке).

Вот код, который загружает библиотеку:

var AD:ApplicationDomain = ApplicationDomain.currentDomain;
var context:LoaderContext = new LoaderContext(false, AD);

SA_gamecore_loader = new Loader();
SA_gamecore_loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onGameCoreLibraryDataComplete);
SA_gamecore_loader.load(new URLRequest("GameCore.swf"), context);

Вот код, который пытается создать экземпляр класса из GameCore.swf:

var test:Class = GetClassFromDefinition("MenuArt") as Class;
var testInstance:Object = new test();

public function GetClassFromDefinition(theStr:String):Object
{
    var theClass:Object;
    try
    {
        theClass = GameCoreLibraryData.applicationDomain.getDefinition(theStr);
    }
    catch(e:ReferenceError)
    {
        trace(e);
        return null;
    }
    return theClass;
}

И этоотслеживаемое сообщение:

ReferenceError: Ошибка # 1065: переменная MenuArt не определена.

GameCore.swf находится в том же месте, что и родительский swf.Я использую Flash Develop, если это поможет.Кто-нибудь может указать, что я делаю неправильно?

1 Ответ

0 голосов
/ 23 февраля 2011

Наконец-то разобрался с проблемой.Мне пришлось включить имя пакета в вызов getDefinition.Так что в моем случае:

var test:Class = GetClassFromDefinition("test.MenuArt") as Class;
...