1

ローカルの 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 開発を使用しています。私が間違っていることを指摘できる人はいますか?

4

1 に答える 1

0

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

var test:Class = GetClassFromDefinition("test.MenuArt") as Class;
于 2011-02-23T07:23:52.990 に答える