过去曾使用 Flash Builder 4.6 创建一些移动应用程序。创建的应用程序仅在高端手机型号上运行良好,但运行速度也比原生应用程序慢。特别是当应用程序正在“启动”时,应用程序完全加载需要一段时间。我知道为什么这会更慢,因为 AIR 是一个额外的应用程序层,可以将其转换为本机。
让我告诉你我的观点。我知道开发非原生软件比原生软件慢。在某些情况下,您需要原生(用于速度、图形等),但大多数时候它并不重要(不需要软件的所有部分都直接使用硬件)。我想要实现的目标是通过开发一次并能够将其移植到多个平台(如果需要)来降低开发成本。我理解为什么有这么多语言,在我看来这只是因为他们喜欢这种语言,想要带来新的东西,因为它是新的,或者将开发人员绑定到特定的平台(商业原因)。事实上,硬件类型或运行方式并没有太大差异,所以当它没有带来任何新事物时,为什么要投资于“新”事物。我想开发持久的代码,而不是绑定到平台炒作或趋势。例如,当您投资为特定平台(例如 Window Mobile)编写代码时,这些天您的代码毫无用处。尤其是在移动世界中,事情可能会迅速变化。
反正最近发现了Haxe的存在,不知道这个存在。听起来很有希望,使用一种语言(类似 AS)并将其移植到另一种语言。一个非常有趣的事情是可以将它移植到 Javascript 并使用它,例如结合 phonegap 来创建移动应用程序,或者能够在不需要闪存的情况下在网站上使用它,或者将它嵌入到 VM 的可执行文件中叫尼科。他们声称它生成的代码比原始的 Adobe 框架更快。我可以想象它更快,因为 Haxe 的所有元素都非常快。
然后我找到了 NME(也不知道有这个),这似乎是基于 Haxe 和 Neko,为不同平台创建移动应用程序,包括 Javascript 和 HTML5。这给了我将 flex 项目移植到 NME 的想法,以摆脱对 Adobe AIR 的要求,也许可以更快地执行并使用相同的代码获得更多可能性。
然后我找到了 as3hx 和一些关于 Apache FlexJS(以前称为 Adobe FalconJS)的信息。as3hx 将 ActionScript 代码转换为 Haxe 代码,FlexJS 将 AS+XML 转换为不可编辑的 HTML5+Javascript 代码。我更喜欢 as3hx 因为扩展的可能性,但不知道如何在转换后实现项目(最终只得到一些 hx 文件)。没有尝试过 FlexJS,因为它似乎是实验性的(不是官方的),并且需要使用更新的 Apache Flex Framework 4.9 更新 Adobe Flex 框架。我犹豫是否要更新 Flash Builder 中的框架,因为我意识到我可能会搞砸原始设置。
在继续此过程之前,我有几个问题:
- 真的可以将(复杂/巨大的)弹性项目转换为 NME 吗?
- 使用 as3hx 转换 flex 项目后我必须做什么才能使其作为项目运行(以便能够在 NME 中编译它)。
- 有人尝试过 FlexJS 方法并且值得吗?
供您参考,一些导致这些问题的资源:
- Haxe:http ://haxe.org
- as3hx:http ://caffeine-hx.googlecode.com/svn/trunk/projects/as3hx
- NME:http ://www.nme.io
- FalconJS:http: //blogs.adobe.com/bparadie/2011/11/19/what-is-falconjs/
- FlexJS:https ://cwiki.apache.org/FLEX/flexjs-status.html
非常感谢您的任何意见,如果您需要一些额外的信息,请给我留言。