一、 IDE :flashdevelop
由官网推荐的IDE:flashdevelop有haxe语法高亮及自动换行补齐功能,并且能够编译工程文件,其编译功能实际就是用命令行编译,也需要vs和android ndk等的支持。
二、 flashdevelop的工程编译选项
cpp工程
1.1 新建cpp工程:project->New project…->C++ project
工程新建cpptest文件夹,内容为:
1.2 编辑Main.hx文件
package ;
importcpp.Lib;
/**
* ...
* @author lidawn
*/
class Main
{
static function main()
{
Lib.print("hello haxecpp");
}
}
1.3 工程选项分析,properties
各个选项卡:
● output:因为建立的C++工程,所以平台默认为C++;
output file里填写的是文件输出的目录:bin
test project里的run constom command内容为run.bat,即运行时执行的run.bat,run.bat内容为:@echo off
pau
表明运行,并且会暂停一下。
● classpath:内容为src,即类在文件夹src里。
1.4 按Ctrl+Enter即可编译运行。编译可选择debug和relea模式,若是选择relea模式,run.bat相应代码要改为。胡适后代
编译实际是执行的命令haxe -cpsrc -cpp bin -main Main–debug
该命令也可以用.hxml文件实现,在后面再讨论。
1.5 其他工程与cpp工程类似。由于flashdevelop上面提供的平台有限,可能并不能直接编译Android工程。
三、 nme编译
1. 命令
可以使用一下编译各个平台的应用程序,跨平台性可以在这里体现,一份代码可以生成各个平台能运行的程序。
nme lios
nme lios -simulator
nme l android
nme lwebos
nme l blackberry
nme l windows
nme l mac
nme llinux
nme llinux -64
nme l flash
nme l html5
2. nmml文件
nmml文件中指定了工程的各种参数,包括名字,类名,库,源代码路径,资源文件路径。下面以网上下载到的Android例子程序分析。
其nmml文件内容为:
<?xmlversion="1.0"encoding="utf-8"?>
<project>
<metatitle="Pirate Pig"package="lecticdesignstudio.piratepig"version="1.0.
0"company="Eclectic Design Studio"/>
<apppath="Export"file="PiratePig"main="lecticdesignstudio.piratepig.PiratePig"/>六的英语怎么说
<windowwidth="800"height="600"if="desktop"/>
皮数杆图片 <windowfps="30"/>
<sourcepath医学心理学论文="Source"/>
<haxelibname="nme"/>
<haxelibname="actuate"/>
<astspath="Asts/fonts"rename="fonts"include="*.ttf"/>
<astspath="Asts/images"rename="images"include="*"/>
<astspath="Asts/sounds"rename="sounds"if="web">
<soundpath="3.mp3"id="sound3"/>
<soundpath="4.mp3"id="sound4"/>
<soundpath="5.mp3"id="sound5"/>
<musicpath="theme.mp3"id="soundTheme"/>
</asts>
<astspath=朝房"Asts/sounds"rename="sounds"unless="web">
<soundpath="3.wav"id="sound3"/>
<soundpath="4.wav"id="sound4"/>
<soundpath="5.wav"id="sound5"/>
<musicpath="theme.mp3"id="soundTheme"/>
</asts>
<iconpath="Asts/icons/icon-512.png"size="512"/>
<iconpath="Asts/icons/icon-144.png"size="144"/>
<iconpath="Asts/icons/icon-114.png"size="114"/>
<iconpath="Asts/icons/icon-96.png"size="96"/>
<iconpath="Asts/icons/icon-86.png"size="86"/>
<iconpath="Asts/icons/icon-72.png"size="72"/>
<iconpath="Asts/icons/icon-64.png"size="64"/>
<iconpath=2d和3d的区别"Asts/icons/icon-58.png"size="58"/>
<iconpath="Asts/icons/icon-57.png"size="57"/>
<iconpath="Asts/icons/icon-56.png"size="56"/>
<iconpath="Asts/icons/icon-50.png"size生抽与酱油的区别="50"/>
<iconpath="Asts/icons/icon-48.png"size="48"/>
<iconpath="Asts/icons/icon-32.png"size="32"/>
<iconpath="Asts/icons/icon-29.png"size="29"/>
<ndllname="std"/>
<ndllname="regexp"/>
<ndllname="zlib"/>
电汇单<ndllname="nme"haxelib="nme"/>
<ctionif="relea-sign">
<certificatepath="C:\Development\Android\eclecticdesignstudio.keystore"if="android"/>
<certificatepath="C:\Development\BlackBerry\author.p12"if="blackberry"/>
</ction>
</project>
app指定了应用的版本,名称,package等信息。
Windows为窗口大小,帧率等,width和height为0时为全屏。
source为源代码路径。
haxelib指定调用了哪些库。
asts为资源文件。
其余的还在研究…
3. 编译
nme build “l” android
4. 说明
所以利用nmml文件可以脱离IDE,并且能够编译各个平台的应用。
四、 compile.hxml编译
compile.hxml实际上根据haxe命令来编写的。
在命令行中输入haxe可得到以下信息:
haXe Compiler 2.09 - (c)2005-2012 Motion-Twin
Usage : -main <class> [-swf|-js|-neko|-php|-cpp|-as3] <output> [option
s]
Options :
-cp<path> : add a directory to find source files
-js<file> : compile code to JavaScript file
-swf<file> : compile code to Flash SWF file
-as3 <directory> : generate AS3 code into target directory
-neko<file> : compile code to Neko Binary
-php<directory> : generate PHP code into target directory
-cpp<directory> : generate C++ code into target directory
-xml <file> : generate XML types description
-main <class> : lect startup class
-lib <library[:version]> : u a haxelib library
-D <var> : define a conditional compilation flag
-v : turn on verbo mode
-debug : add debug informations to the compiled code
-help Display this list of options
--help Display this list of options