我可以将AS3代码或Flex项目交叉编译为本机C ++吗?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我可以将AS3代码或Flex项目交叉编译为本机C ++吗?相关的知识,希望对你有一定的参考价值。
我想使用现有的AS3或Flex项目并将其编译为在本机C ++代码上运行。有没有办法做到这一点?有哪些解决方案?我不想改变我的AS3代码。
答案
不,因为
- 缺乏C ++中的动态特性(你没有相应的
Object
和describeType
) - 在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 8 中的类但编译为 Java 6 的 Java 代码吗?