apache-flex 我可以将AS3代码或Flex项目交叉编译为原生C++吗?

qvk1mo1f  于 2022-10-31  发布在  Apache
关注(0)|答案(3)|浏览(176)

我想把我现有的AS3或Flex项目编译成在原生C++代码上运行。有什么方法可以做到这一点吗?有什么解决方案吗?我不想改变我的AS3代码。

8xiog9wr

8xiog9wr1#

AS3是一个在预建库上运行的框架,你必须在你的“翻译”代码中以某种方式替换它。例如,当你执行new Sprite()时,你会想象本机代码做什么?
Haex并没有试图寻找替代品。它采用了不同的方法,它允许你重用那些容易翻译的代码,但那些不能翻译的代码被标记为特定于特定环境。然而,Haex通过使用NME图形引擎,努力提出了类似于Flash显示列表的API。
以iOS编译器为例,它再次针对现有的本地代码库进行编译,这些本地代码库提供了显示列表、视频和音频播放器等功能。

6tqwzwtp

6tqwzwtp2#

如果你能把它转换成Haex(Haex有非常像AS3的语法,只有库和一些语言结构不同),它应该会提供一个编译为“native”的选项。我听说它甚至提供了一个C++源代码,或者是IRC Haex房间的人告诉我的。我可能会被拖到代码部分,虽然他看起来不像是在拖...
它并不完美,肯定缺乏一些更先进的功能,但它值得一看可能。

42fyovps

42fyovps3#

不,因为

  • C++中缺少动态特性(没有ObjectdescribeType等效项)
  • 缺少C++中的Flash原生型别(String(std::string不相等)、显示对象和许多其他型别)
  • 缺少语言功能(事件侦听程式、内存回收)
  • 缺少C中的Flex框架等价物(C中有其他好的GUI框架,但没有一个看起来像Flex -因为上面的原因。)

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

相关问题