2011-02-23 2 views
1

Я пытаюсь загрузить локальный SWF-файл и использовать классы в этом SWF (его код только SWF, ничего в библиотеке).Flash - не удается получить доступ к классам в другом 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: Variable MenuArt не определен.

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

ответ

0

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

var test:Class = GetClassFromDefinition("test.MenuArt") as Class; 
Смежные вопросы