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

问题描述 投票:1回答:3

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

c++ flash flex actionscript
3个回答
1
投票

不,因为

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

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


3
投票

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

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

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


2
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.