gpt4 book ai didi

actionscript-3 - AS3 中 getDefinition 和 getDefinitionByName 的区别

转载 作者:行者123 更新时间:2023-12-04 06:47:43 28 4
gpt4 key购买 nike

有人可以解释一下 AS3 中 getDefinitionByName 和 getDefinition 之间的区别吗?

当我加载外部 SWF 时,我无法使用 getDefinitionByName因为我收到错误 #1065。

但是使用 externalSWF_ContentLoaderInfo.applicationDomain.getDefinition工作正常。

那么,为什么 getDefinitionByName 找不到 className?
我的意思是,如果定义在加载的 SWF 的 applicationDomain 中,为什么不在主 SWF 中呢? (我正在使用 Flex)。

Offtopic:我无法创建新标签,因此无法添加标签 getDefinition 和 getDefinitionByName :(

最佳答案

获取定义 是一个 ApplicationDomain 的方法它返回类、命名空间或函数的定义。

getDefinitionByName 是来自 flash.utils 的包级函数它返回一个 Class 对象,您可以使用它来实例化新对象。该定义必须已加载到您的 ApplicationDomain 中的某处。

不能使用外部 SWF 生成 getDefinitionByName 的原因是它被加载到单独的 ApplicationDomain 中。您的第二个示例有效,因为您的目标是正确的 ApplicationDomain。要使您的第一个示例工作,您必须将外部 SWF 加载到您当前的 ApplicationDomain 中,如下所示:

var request:URLRequest = new URLRequest("externalSWF.swf");
var context:LoaderContext = new LoaderContext();
context.applicationDomain = ApplicationDomain.currentDomain;
var loader:Loader = new Loader();
loader.load(request,context);

这是有效的,因为它将当前 ApplicationDomain 作为加载程序上下文的属性传递。

关于actionscript-3 - AS3 中 getDefinition 和 getDefinitionByName 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6559439/

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