2011-02-23 55 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:變量MenuArt未定義。

GameCore.swf和父swf位於同一位置。如果有幫助,我正在使用Flash開發。任何人都能指出我做錯了什麼?

回答

0

終於明白了這個問題。我必須在getDefinition調用中包含包名。所以在我的情況下:

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