2011-02-23 9 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 Developを使用しています。私が間違っていることを誰でも指摘できますか?

答えて

0

最後に問題を見つけました。 getDefinition呼び出しにパッケージ名を含める必要がありました。だから私の場合:

var test:Class = GetClassFromDefinition("test.MenuArt") as Class; 
関連する問題