在编写代码转换器(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以获取课程信息。)
任何解决方案?
答案 0 :(得分:0)
playerglobal.swc
和airglobal.swc
主要用于代码提示,并让编译器知道可用的本机方法。它们包含一些实际的代码块,但主要是空函数。 您无法在运行时加载它们,并且无论如何都无法覆盖原生定义。
我很困惑为什么你需要这样做以进行内省。您应该能够在转换器的本机变量实例上使用describeType
,并获得与从应用程序内部调用的输出完全相同的输出。