我可以交叉编译我的AS3代码或Flex项目原生c++



我想把我现有的AS3或Flex项目编译成在本地c++代码上运行。有办法做到这一点吗?存在什么样的解决方案?我不想改变我的AS3代码

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

Haxe没有尝试寻找替代品。它采用了不同的方法,因为它允许您重用易于翻译的代码,但是那些不能翻译的代码被标记为特定于特定环境。然而,在Haxe中有一个类似于Flash显示列表的API,通过使用NME图形引擎。

在你的iOS编译器的例子中,它再次针对现有的提供显示列表、视频和音频播放器等功能的本地代码库进行编译。

如果你可以将它转换为Haxe (Haxe有非常类似AS3的语法,只有库和一些语言结构不同),它应该为你提供一个编译为"native"的选项。我听说它甚至还提供了一个c++源代码,或者是IRC聊天室里的人告诉我的。我可能因为代码部分而被恶搞,尽管他看起来不像是在恶搞……

它并不完美,而且肯定缺乏一些更高级的功能,但可能值得一看。

不,因为

  • c++中缺少动态特性(你没有相应的ObjectdescribeType)
  • c++中缺少Flash原生类型(String (std:: String不等效),显示对象和许多其他)
  • 缺少语言特性(事件监听器,垃圾收集)
  • c++中缺少Flex框架(c++中有其他好的GUI框架,但没有一个看起来像Flex——因为上面的原因)

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

最新更新