在一个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(); }
这不像第一个那样令人敬畏,但也可能导致其他想法.
希望这可以帮助.