在加载的SWF中创建为actionscript导出的符号实例



在一个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();
}

这没有第一个那么棒,但也可能导致其他的想法。

最新更新