1

在编写代码转换器(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 以获取课程信息。)

有什么解决办法吗?

4

1 回答 1

0

playerglobal.swcairglobal.swc主要用于代码提示,让编译器知道有哪些本地方法可用。它们包含一些实际的代码块,但大部分是空函数。 您无法在运行时加载它们,也无法覆盖本机定义。

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

于 2013-03-07T12:37:31.803 回答