在flash项目中,我正在加载一个外部SWF,它的库中为ActionScript导出了一些符号。我需要创建这些符号的实例,但是,由于它是一个加载的SWF,我没有直接访问那些类。
有什么想法吗?
答案 0 :(得分:5)
嗯,有几种方法可以做到这一点。
最好的可能是:
var ldr:Loader = new Loader();
ldr.contentLoaderInfo.addEventListener("complete", ldrDone);
ldr.load(new URLRequest("external.swf"));
function ldrDone(evt:*):void
{
var externalclass:Class = evt.target.applicationDomain.getDefinition("ExternalClass") as Class;
var temp:MovieClip = new externalclass();
addChild(temp);
}
其中ExternalClass
是外部swf中的导出类名。
或者,只需在外部电影中使用一个功能,您可以根据需要返回特定对象。
喜欢把它放在你的外部swf中:
function getThisClass():*
{
return new MyClass();
}
这不像第一个那样令人敬畏,但也可能导致其他想法。
希望这有帮助。