我正在尝试加载本地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。任何人都能指出我做错了什么?
答案 0 :(得分:0)
终于找到了问题所在。我必须在getDefinition调用中包含包名。所以在我的情况下:
var test:Class = GetClassFromDefinition("test.MenuArt") as Class;