2

过去曾使用 Flash Builder 4.6 创建一些移动应用程序。创建的应用程序仅在高端手机型号上运行良好,但运行速度也比原生应用程序慢。特别是当应用程序正在“启动”时,应用程序完全加载需要一段时间。我知道为什么这会更慢,因为 AIR 是一个额外的应用程序层,可以将其转换为本机。

让我告诉你我的观点。我知道开发非原生软件比原生软件慢。在某些情况下,您需要原生(用于速度、图形等),但大多数时候它并不重要(不需要软件的所有部分都直接使用硬件)。我想要实现的目标是通过开发一次并能够将其移植到多个平台(如果需要)来降低开发成本。我理解为什么有这么多语言,在我看来这只是因为他们喜欢这种语言,想要带来新的东西,因为它是新的,或者将开发人员绑定到特定的平台(商业原因)。事实上,硬件类型或运行方式并没有太大差异,所以当它没有带来任何新事物时,为什么要投资于“新”事物。我想开发持久的代码,而不是绑定到平台炒作或趋势。例如,当您投资为特定平台(例如 Window Mobile)编写代码时,这些天您的代码毫无用处。尤其是在移动世界中,事情可能会迅速变化。

反正最近发现了Haxe的存在,不知道这个存在。听起来很有希望,使用一种语言(类似 AS)并将其移植到另一种语言。一个非常有趣的事情是可以将它移植到 Javascript 并使用它,例如结合 phonegap 来创建移动应用程序,或者能够在不需要闪存的情况下在网站上使用它,或者将它嵌入到 VM 的可执行文件中叫尼科。他们声称它生成的代码比原始的 Adob​​e 框架更快。我可以想象它更快,因为 Haxe 的所有元素都非常快。

然后我找到了 NME(也不知道有这个),这似乎是基于 Haxe 和 Neko,为不同平台创建移动应用程序,包括 Javascript 和 HTML5。这给了我将 flex 项目移植到 NME 的想法,以摆脱对 Adob​​e AIR 的要求,也许可以更快地执行并使用相同的代码获得更多可能性。

然后我找到了 as3hx 和一些关于 Apache FlexJS(以前称为 Adob​​e FalconJS)的信息。as3hx 将 ActionScript 代码转换为 Haxe 代码,FlexJS 将 AS+XML 转换为不可编辑的 HTML5+Javascript 代码。我更喜欢 as3hx 因为扩展的可能性,但不知道如何在转换后实现项目(最终只得到一些 hx 文件)。没有尝试过 FlexJS,因为它似乎是实验性的(不是官方的),并且需要使用更新的 Apache Flex Framework 4.9 更新 Adob​​e Flex 框架。我犹豫是否要更新 Flash Builder 中的框架,因为我意识到我可能会搞砸原始设置。

在继续此过程之前,我有几个问题:

  1. 真的可以将(复杂/巨大的)弹性项目转换为 NME 吗?
  2. 使用 as3hx 转换 flex 项目后我必须做什么才能使其作为项目运行(以便能够在 NME 中编译它)。
  3. 有人尝试过 FlexJS 方法并且值得吗?

供您参考,一些导致这些问题的资源:

非常感谢您的任何意见,如果您需要一些额外的信息,请给我留言。

4

4 回答 4

2

真的可以将(复杂/巨大的)弹性项目转换为 NME 吗?

Haxe NME 并不是为替代 flex mxml ui 项目而设计的,因此如果您选择 flex ui,您将受到它的限制。

NME 已经看到了许多复杂的 as3 库的移植,因此这并非不可能,但 flex mxml 需要大量投资,有些人可能会认为 Flex 不值得付出努力(包括我自己)。

http://www.aswing.org/最初基于 java swing ui 有 as3 和 Haxe NME 版本。

https://github.com/RealyUniqueName/StablexUI/https://github.com/ianharrigan/haxeui也是 Haxe / OpenFL(NME) 跨平台用户界面的绝佳选择。

as3hx 之类的工具使转换 as3/Haxe 中最基本差异的过程变得更加容易。它并不声称是绝对转换,我还没有看到任何可以自动将高度复杂的 as3 转换为 Haxe 的东西。它只是一个工具,不会利用优化 as3 代码来优化 Haxe 语言的更高级和最佳语言特性。

于 2013-04-01T01:40:14.733 回答
1

我强烈推荐 FlexJS,特别是对于任何有现有 AS3/Flex 项目的人。今年 FlexJS 取得了很大进展。当您可以坚持使用您已经知道的工具和 AS3 语言时,为什么要重新编写整个内容?我一直在使用 FlexJS,最近创建了一个完整的网站前端、后端和 mysql 连接,全部用 AS3 编写并编译为 Node.js 的 javascript。这真是太棒了。

带有 FlexJS 的 Flash Builder https://cwiki.apache.org/confluence/display/FLEX/Using+FlexJS+with+Adobe+Flash+Builder

教程和工具 Josh Tynjala 在这里创建了很多很棒的资源。 http://nextgenactionscript.com

我希望尽快添加我自己的教程。

于 2016-10-06T15:10:29.550 回答
0

看来您的项目建设路径太长,无法快速完成。目前Adobe Flash 平台的主要目标是让它成为游戏开发者的甜蜜糖果,这意味着他们肯定会非常关注air 和flash 播放器的性能。

也许等待他们的性能更新比使用 haxe(非常类似于 beta 的东西)或 javascript(这是非常有问题的语言)更快。

于 2013-03-31T16:34:21.860 回答
0

很抱歉让您的希望破灭,但我正在处理同样的问题,即摆脱 Flex 并转向 HTML5/JS。如果你愿意的话,你可以用几个月的时间来反对尝试将你的大型 flex 应用程序转换为 HTML5/JS,但最终在像 ExtJS 这样的库中重写整个东西会更容易。

于 2013-04-01T18:46:08.467 回答