AS3:加载playerglobal / airglobal.swc时出错,进行运行时检查/反射?

时间:2013-03-07 10:19:19

标签: actionscript-3

在编写代码转换器(AS3到另一种语言)时,必须从所有自定义类和AS3内核访问整个继承链。

转换器本身是用AIR编写的,要移植的应用程序将是Flash Player或AIR应用程序。这让我陷入了困境:我需要为特定的应用程序运行时加载不同版本的playerglobal或airglobal(与为转换器本身加载的版本相比!)反思它。当我的转换器尝试加载library.swf(在playerglobal.swc中找到SWF)时,我显示

VerifyError: Error #1079: Native methods are not allowed in loaded code.

这是有问题的,因为在我克服这个问题之前,我不能使用describeType()来检查SWF中的类。 (而且我宁愿避免从SWF中读取ABC以获取课程信息。)

任何解决方案?

1 个答案:

答案 0 :(得分:0)

playerglobal.swcairglobal.swc主要用于代码提示,并让编译器知道可用的本机方法。它们包含一些实际的代码块,但主要是空函数。 您无法在运行时加载它们,并且无论如何都无法覆盖原生定义。

我很困惑为什么你需要这样做以进行内省。您应该能够在转换器的本机变量实例上使用describeType,并获得与从应用程序内部调用的输出完全相同的输出。