我加载了一个外部 SWF。外部 SWF有一个嵌入的DisplayObject ( getChildAt(0)) ,我使用以下代码获得了它的Class的一个实例:
public function getEmbedded():* {
var _class:Class = loaderInfo.applicationDomain.getDefinition(getQualifiedClassName(getChildAt(0))) as Class;
return new _class();
}
到目前为止,一切都很好。如果主 SWF(加载上述外部 SWF)和外部 SWF在同一个域中(本地或在线),则主SWF和外部SWF的类匹配:
例如,我在外部 SWF 中嵌入了一个fanlib.tween.TPlayer对象。在主要的 SWF 中,我这样做:
var clip3:fanlib.tween.TPlayer = externalSwf.getEmbedded();
它工作正常。
但!!!
如果外部 SWF 是从另一个域加载的,则类不匹配!!!
我收到这样的错误:
[Fault] 异常,信息=TypeError: Error #1034: Type Coercion failed: cannot convert fanlib.tween::TPlayer@2563221 to fanlib.tween.TPlayer。
这不是crossDomain的问题,我已经正确设置了XML文件和安全上下文,并且外部 SWF 加载时没有安全错误。尝试将嵌入类转换为主对象时会出现问题。
这可以用任何方式解决吗???