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 Develop。谁能指出我做错了什么?

4

1 回答 1

0

终于弄清楚了问题所在。我必须在 getDefinition 调用中包含包名称。所以在我的情况下:

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