在一个flash项目中,我正在加载一个外部SWF,它的库中有一些符号导出为ActionScript。我需要创建这些符号的实例,但是,因为它是一个加载的SWF,所以我不能直接访问这些类。
任何想法?
嗯,有几种方法可以做到这一点。
最好的可能是:
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();
}
这没有第一个那么棒,但也可能导致其他的想法。