我可以将AS3代码或Flex项目交叉编译为本机C ++吗?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我可以将AS3代码或Flex项目交叉编译为本机C ++吗?相关的知识,希望对你有一定的参考价值。

我想使用现有的AS3或Flex项目并将其编译为在本机C ++代码上运行。有没有办法做到这一点?有哪些解决方案?我不想改变我的AS3代码。

答案

不,因为

  • 缺乏C ++中的动态特性(你没有相应的ObjectdescribeType
  • 在C ++中没有Flash本机类型(String(std :: string不等效),显示对象和许多其他)
  • 没有语言功能(事件监听器,垃圾收集)
  • 缺少与C ++相当的Flex框架(在C ++中还有其他优秀的GUI框架,但没有一个看起来像Flex - 因为上面的原因。)

简而言之,用C ++编写类似的程序(使用Qt或任何相当强度的框架)要比编写转换器容易得多。

另一答案

AS3是一个运行在预构建库上的框架,您必须在“翻译”代码中以某种方式替换它。例如,当你做new Sprite()时,你会想象本机代码会做什么?

Haxe不会试图找到替代品。它采用不同的方法,因为它允许您重用容易转换的代码位,但那些不转换的代码被标记为特定于某些环境。然而,Haxe努力通过使用NME图形引擎来提出类似于Flash显示列表的API。

给出你的ios编译器示例 - 它再次编译现有的本机代码库,提供显示列表,视频和音频播放器等功能。

另一答案

如果你可以把它转换成Haxe(Haxe有非常类似AS3的语法,只有库和一些语言结构不同)它应该为你提供一个编译“native”的选项。我听说它甚至提供了一个C ++源代码,所以我已经被IRC Haxe房间的人告知过了。我本来可以为代码部分而受到控制,尽管他看起来并不像是在拖钓......

我不完美,肯定缺乏一些更先进的功能,但值得一看。

以上是关于我可以将AS3代码或Flex项目交叉编译为本机C ++吗?的主要内容,如果未能解决你的问题,请参考以下文章

如何将 Java 源代码交叉编译为 JavaScript?

Flash / Flex中Speex编解码器的API

我可以交叉编译可选择使用 Java 8 中的类但编译为 Java 6 的 Java 代码吗?

无法将 sqlite3 编译为本机插件,Electron React Boilerplate 项目

Java到C交叉编译[关闭]

Xamarin 无法编译为本机代码