【问题标题】:Can I cross compile my AS3 code or Flex project to native C++?我可以将我的 AS3 代码或 Flex 项目交叉编译为本机 C++ 吗?
【发布时间】:2011-10-07 18:49:30
【问题描述】:

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

【问题讨论】:

  • 您所要求的没有意义。程序不会“在本机 C++ 代码上运行”。程序可以用 C++ 或许多其他编程语言之一编写,并编译为本地机器语言可执行文件。如果你想将 AS3 编译为本机可执行文件,C++ 绝对与此无关。
  • 抱歉语义,是的,我想将 AS3 编译为本机可执行文件。有点像您可以使用适用于 iOS 的 Flash Builder 执行的操作。

标签: c++ flash apache-flex actionscript


【解决方案1】:

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

Haxe 不会尝试寻找替代品。它采用不同的方法,因为它允许您重用可以轻松翻译的代码位,但那些不翻译的代码被标记为特定于特定环境。但是,Haxe 正在努力使用 NME 图形引擎提供类似于 Flash 显示列表的 API。

以您的 iOS 编译器为例 - 它再次针对提供显示列表、视频和音频播放器等功能的现有本机代码库进行编译。

【讨论】:

    【解决方案2】:

    如果您可以将其转换为 Haxe(Haxe 具有非常类似于 AS3 的语法,只有库和一些语言结构有所不同),它应该为您提供“native”编译选项。我听说它甚至提供了 C++ 源代码,或者 IRC Haxe 房间的人告诉我。我可能会因为代码部分被拖钓,尽管他看起来不像在拖钓......

    我并不完美,肯定缺少一些更高级的功能,但可能值得一看。

    【讨论】:

      【解决方案3】:

      不,因为

      • C++ 中缺少动态特性(你没有 ObjectdescribeType 等效项)
      • C++ 中缺少 Flash 原生类型(字符串(std::string 不等效)、显示对象和许多其他类型)
      • 缺少语言功能(事件侦听器、垃圾收集)
      • 在 C++ 中缺少等效的 Flex 框架(C++ 中还有其他优秀的 GUI 框架,但没有一个看起来像 Flex - 由于上述原因。)

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

      【讨论】:

      • 我期待这个,但不完全确定其他一些方法是如何处理这个的。即 Flash Builder 和 Scaleform。谢谢。
      猜你喜欢
      • 1970-01-01
      • 2017-04-13
      • 1970-01-01
      • 2021-09-14
      • 2016-06-19
      • 1970-01-01
      • 2011-06-27
      • 1970-01-01
      • 2011-03-12
      相关资源
      最近更新 更多