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

时间:2011-10-07 18:49:30

标签: c++ flash flex actionscript

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

3 个答案:

答案 0 :(得分:3)

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

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

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

答案 1 :(得分:2)

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

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

答案 2 :(得分:1)

不,因为

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

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