Flash - 无法访问另一个SWF中的类

时间:2011-02-23 05:26:02

标签: actionscript-3 flash loader swfloader

我正在尝试加载本地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。任何人都能指出我做错了什么?

1 个答案:

答案 0 :(得分:0)

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

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