Haxe学习笔记(一) Haxe:一次编码全平台编译的神话
Haxe学习笔记(一) Haxe:一次编码全平台编译的神话
一 Haxe是什么?
Haxe是开源的,它作为一门语言,基础语法和ActionScript3基本一致。所以任何做过Flash开发的人都可以很快的上手。Haxe最独特的地方在于他的编译器,Haxe的编译器能自动将Haxe代码编译成任何支持的目标语言,并自动输出最终结果。这个过程非常方便,仅需一行参数不多的命令行。
Haxe这个支持列表非常丰富,C++,JavaScript,Falsh,PHP,C#,Java。加上NME模块的支持的话,还支持iOS,Android,WindowsMobile,WebOS。编译到不同的平台上统统都只需要一句命令行,非常方便。
我的重点不在介绍,需要了解更多的按顺序阅读以下文章:
haxe:号称比java还跨平台的语言
haxe 移动设备跨平台开发
上帝的玩偶:haXe语言
如果以上文章不能满足你,请看官网:http://haxe.org
二 缺点
Haxe真要用到开发中,我接触的不多没有经验,可以看下wyyayy兄的文章:
haxe,想说爱你不容易
三 环境搭建
Haxe的环境搭建非常简单,仅需一步就可以搭建好Haxe的环境。
1 下载安装程序
http://haxe.org/download (官网)
PS:在Linux下可以直接apt-get安装
2 选择代码编辑工具
官方强烈推荐FlashDevlop,这个IDE也是和Haxe结合的最好的,原生支持Haxe,但是只有Window版本。所以我选了一个自己喜欢的文本编辑器。
参考:http://haxe.org/com/ide(官网)
3 测试
打开命令行/终端,打入haxe测试一下。
到这里为止,Haxe就原生支持的这些目标语言了。
四 使用下Haxe
官网上有非常多的入门指引,我这里只拿C++,Flash,Java做测试。文字也会更简单一些,需要详细的介绍可以点下面的连接去看官网教程(英文):
C++ | Flash | Java
0 测试代码
我照着官网的例子制作了一个HelloWorld,并保存做了Test.hx。(注意文件名需要和类名相同)
第一个平台大功告成了,其他的平台编译过程也是类似的过程。
2 Flash
输出为swf是haxe最早支持的功能,它不需要任何其他模块。
需要说明的是Haxe可以支持输出成多个Flash的版本,需要在编译命令中加其他参数。请参考官网教程。
3 Java
Java平台没啥特别的,和C++差不多,不过你得自己先安装好JDK。
看完了3个例子,是不是觉得Haxe非常的方便易用?
四 NME介绍
NME是Haxe在互联网进入移动互联网之后的产物,它本身是Haxe的一个模块。随着移动互联网兴起,它的发展速度很快,已经成为了Haxe的重头戏。以至于Haxe也给他创建了一个独立的页面:http://www.haxenme.org
NME虽然是一个模块,但是它的作用非常之大。NME将Haxe的代码先编译为C++代码,然后将C++代码编译成为目标平台的二进制文件。
NME另外一个伟大之处在于它给Haxe语言中添加了名叫nme的包(Package),这个包内部包含了非常多的Flash中的同名库。换句话说,熟悉Flash开发的朋友们几乎可以马上开始开发工作。到底NME的库和Flash有多少的相似度?我没有具体使用过,但是这里有API手册(http://www.haxenme.org/api/),真的非常相像。
五 NME安装
NME模块有独立的安装包,可以直接下载安装;当然你也可以手动在之前安装的Haxe中安装NME模块。在这篇文章里面我将同时介绍两种方式。另外,windows版本的NME独立安装包内包含了Haxe,为保持系统简洁,可以先把之前的Haxe环境删除。Mac的版本没这个问题。
1 安装NME
A 独立安装包(推荐)
独立的安装包在这里:http://www.haxenme.org/download/ (官网)
下载适合自己系统的安装包,然后运行安装,过程非常简单。
B 在之前的Haxe环境下安装
命令行:
下载完Android SDK后,会自动下载Android NDK。因为我是Mac系统,跳过了Ant和JDK。如果你已经安装了Android的环境,你可以选择跳过下载后手工输入你的Android SDK和NDK的目录。到这里为止,所有的安装和配置都已经完成了。如果要想看其他平台和更多细节,请详细阅读这个页面:http://www.haxenme.org/documentation/setup/ 如果已经完成了安装,可以了解下NME对硬件的支持和各种特性的支持:http://www.haxenme.org/documentation/devices/ 和 http://www.haxenme.org/documentation/features/六 编译测试
还是那我们的Test.hx来做编译测试吧,我们现在需要一个.NMML文件来配置我们的编译参数。
nme test sample.nmml android经过了漫长的编译等待(仅第一次,比iOS要慢很多),如果你成功了,并且你的手机连接到电脑上,你可以看到你的手机自动打开并运行了输出的程序。(我看到了白屏,同时在终端中看到了熟悉的“Test.hx:3: Hello World !”)
七 结束语在我学习Haxe的过程中,一直为开发者感到惊讶,从头到尾我只用了不到10个haxe的指令就完成了搭建环境到可以开发的过程。它的引导功能,自动查找外部工具的功能,都帮助学习者大大缩短学习的过程。它的官网简洁,文字精简突出重点,指引资料很完整。
这是一个伟大的开源程序!向Haxe的作者们和社区致敬,
- 2楼lanphaday昨天 13:48
- 膜拜,你知道的太多了!
- 1楼indexchen3天前 10:10
- 要覆盖的语言越多,特性就越少,因为它只能覆盖所有语言的交集。