2011-02-23 4 views
1

로컬 SWF 파일을로드하고 해당 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을 사용하고 있습니다. 내가 잘못한 것을 지적 할 수있는 사람은 누구입니까?

답변

0

마지막으로 문제를 파악했습니다. getDefinition 호출에 패키지 이름을 포함해야했습니다. 그래서 내 경우에는 :

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