gpt4 book ai didi

actionscript-3 - 类在主 SWF 和运行时从另一个域加载的 SWF 之间不匹配

转载 作者:行者123 更新时间:2023-12-04 04:25:55 27 4
gpt4 key购买 nike

我加载了一个外部 SWF。 外部 SWF 有一个嵌入的 DisplayObject (getChildAt(0)) 我得到了它的 Class 实例以下代码:

    public function getEmbedded():* {
var _class:Class = loaderInfo.applicationDomain.getDefinition(getQualifiedClassName(getChildAt(0))) as Class;
return new _class();
}

到目前为止一切顺利。如果ma​​in SWF(加载上述外部 SWF)和external SWF在同一个域(本地或在线)中,ma​​in外部 SWF 匹配:

例如假设我在外部 SWF 中嵌入了一个 fanlib.tween.TPlayer 对象。在主 SWF 中我这样做:

var clip3:fanlib.tween.TPlayer = externalSwf.getEmbedded();

而且效果很好。

但是!!!

如果外部 SWF 是从另一个域加载的,则类不匹配!!!

我收到这样的错误:

[Fault] exception, information=TypeError: Error #1034: Type Coercion failed: cannot convert fanlib.tween::TPlayer@2563221 to fanlib.tween.TPlayer.

这不是 crossDomain 的问题,我已经正确设置了 XML 文件和 Security context 并且外部 SWF 加载 没有安全错误。尝试将嵌入式类转换为主对象时会出现问题。

这有什么办法可以解决吗???

最佳答案

您可以使用
让您的代码正常工作var clip3:* = externalSwf.getEmbedded();
如果你想让你的代码警告免费使用 interface
var clip3: TplayerInterface = externalSwf.getEmbedded() as TplayerInterface;

关于actionscript-3 - 类在主 SWF 和运行时从另一个域加载的 SWF 之间不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10813769/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com