Haxe文档之Introduction(介绍)

对Haxe编程语言、编译器、标准库和其他必要的知识点进行介绍。

一.对Haxe工具集的介绍:

Haxe Toolkit是一个强大的开源工具集,会帮助将你的开发更进一步。如果想要开发应用程序、游戏或框架的话,你不必为每个平台(比如Windows、Mac OS、Linux、IOS、Android等)都开发一种优化的软件版本,相反,你可以利用Haxe将你的工程直接编译成你想要的编程语言代码或者目标平台。

Haxe允许你将目标对准于大多数的主流平台,它不仅仅可以增加你开发过程的灵活性,还会为你节省宝贵时间和资源。

为了帮助你做到这些,工具集包含了三个主要的组件:

  • Haxe Language:一个现代的、高级的、严格类型检查的编程语言
  • Haxe Standard Library :一个完整的、跨平台的标准库
  • Haxe Compiler:一个异常快的混合编译器

除了这些特点外,Haxe工具集也为你提供了一系列工具,能够让你使用Haxe更加高效。

二.对Haxe编程语言的介绍

Haxe是一个现代、高级的编程语言,它是严格类型检查的,如果你已经对JavaC++PHPAS3或者其他面向对象编程语言熟悉的话,就很容易学习Haxe。

因为Haxe编程语言是特地为Haxe工具集设计的,我们额外注意了它的灵活性。Haxe很容易让你的应用适应于不同平台的本地行为,这样,你就能进行高效的跨平台开发,从而节省时间和资源。

写一个Hello,World程序

Haxe设计得简单但是很强大,它的语法很大程度上是跟随于ECMAScript,但是必要的地方又有所不同。以下是Haxe写的Hello,World程序:

class HelloWorld {
    static public function main() {
        trace("Hello World");
    }
}

安装了Haxe后,将上面的程序保存在一个文件中,命名于HelloWorld.hx,我们可以在命令行中编译这个程序,

  • 编译成JavaScript程序:
haxe -main HelloWorld -js HelloWorld.js
  • 编译成Java程序:
haxe -main HelloWorld -java path/to/java/out

大多数的Haxe代码都是以classes(类)functions(方法)方式组织的,让Haxe成为一种面向对象的编程语言。Haxe富有表现力,以可读性性的语法,成为了一种强大的编程语言。

三.Haxe编程语言介绍

  • Abstract types
  • Anonymous structures
  • Array Comprehension
  • Classes, interfaces and inheritance
  • Conditional compilation
  • (Generalized) Algebraic Data Types
  • Inlined calls
  • Iterators
  • Local functions and closures
  • Metadata
  • Static Extensions
  • String Interpolation
  • Partial function application
  • Pattern Matching
  • Properties
  • Type Parameters, Constraints and Variance

四.Haxe标准库的介绍

Haxe标准库提供了常见的用途工具,而不是想成为一个数据结构和算术的详尽集合。Haxe带有一个std目录,里面包含了Haxe标准库,内容是这样分类的:

  • General purpose(一般用途):std目录包含了一些顶级的类,例如,ArrayMap或者String,它们可以被用在所有的平台上。下面的haxe子目录提供了额外的数据结构,输入/输出API和更多的工具。
  • System(系统):sys子目录包含了与文件系统和数据库相关的API。此外,Sys顶级类允许与操作系统的各种各样的交互。只有当这些类被编译到sys类别目标平台上的时候才能够获得。
  • Target specific(特定目标平台):每个Haxe目标平台都有一个不同的子目录,里面包含了特定目标平台的API。只有编译到给定平台的时候才能够使用到。

1.General purpose API:

所有目标平台上都可以使用

顶级:
- Array
- Date,DateTools
- EReg
- Lambda
- Map
- Math
- Reflect
- Std
- String
- StringBuf
- StringTools
- Type
- Xml

haxe

  • haxe.Http
  • haxe.Json
  • haxe.Resource
  • haxe.Serializer
  • haxe.Template
  • haxe.Timer
  • haxe.Unserializer
  • haxe.Utf8
  • haxe.crypto
  • haxe.macro
  • haxe.remoting
  • haxe.rtti
  • haxe.unit
  • haxe.web
  • haxe.xml
  • haxe.zip

have.ds

  • haxe.ds.ArraySort
  • haxe.ds.BalancedTree
  • haxe.ds.EnumValueMap
  • haxe.ds.GenericStack
  • haxe.ds.IntMap
  • haxe.ds.ObjectMap
  • haxe.ds.StringMap
  • haxe.ds.Vector

have.io

  • haxe.io.Bytes
  • haxe.io.BytesBuffer
  • haxe.io.Path

2.系统API

C++C#JavaNekoPHP

  • Sys
  • sys.FileSystem
  • sys.db
  • sys.io.File
  • sys.io.Process

3.特定目标平台的API

<1>cpp :

  • cpp.Lib
  • cpp.net
  • cpp.vm
  • cpp.zip

<2>cs:C#平台上的API

<3>flash :

  • flash
  • flash.Lib
  • flash.Memory
  • flash.Vector

<4>flash8 :

  • flash8

<5>java

<6>js :

  • js.Browser
  • js.Cookie
  • js.jQuery
  • js.Lib
  • js.html

<7>neko

  • neko.Lib
  • neko.Web
  • neko.net
  • neko.vm
  • neko.zip

<8>php

  • php.Lib
  • php.Session
  • php.Web
  • php.db.PDO

五.编译器目标平台

以下的表给出了Haxe的目标平台:

六.编辑器与集成开发工具

流行的编辑器:

  • FlashDevelop
  • Sublime Text
  • IntelliJ IDEA
  • VIM
  • Atom
  • HIDE(正在开发中)

官方提供了使用这些编辑器开发使用的插件编辑器与集成开发工具

七.构建Haxe开发环境

1.获取资源

Haxe编译器资源放在Github HaxeFoundation accountHaxe repository有几个字模块,所以克隆它可以使用标识--recursive

git clone --recursive git://github.com/HaxeFoundation/haxe.git

或者,我们也可以从 GitHub Haxe release overview获得.zip资源或者二进制文件。

2.在Mac OS上配置

依赖项(dependencies)可以很容易地通过Homebrew来安装。实际上,如果你只想要使用Haxe最新的开发版本的话,而不修改资源,只需运行:

brew install haxe --HEAD

在将来可以使用命令brew reinstall haxe --HEAD来更新Haxe。

如果你想要获取Haxe编译器的话,最好手动克隆,然后使用Makefile:

  1. 安装XQuartz(OCaml需要)
  2. 安装OCaml
  3. 安装Camlp4
  4. 进入到Haxe资源所在的目录,然后使用make来构建Haxe
make
make install

其他平台的安装,请看官网Building Haxe from source

通过Homebrew来安装的话,会自动帮我们安装依赖项,手动安装的话,需要分别安装依赖项。

八.编译器用法

Haxe编译器可以从命令行中激活,命令要包含几个参数,这些参数会回到这几个问题:

  • 应该编译什么
  • 输出应该是什么

为了回答第一个问题,我们只需使用-cp path参数来提供类的路径,还有使用-main dot_path参数来编译主类。Haxe编译器然后会分析主类,开始编译。

第二个问题的答案要提供一个参数来声明预期的目标。每个Haxe的目标都有一个命令,例如,-js file_name为了JavaScript这个目标,-php directory为了PHP这个目标。取决于目标,参数值要么是一个文件名(-js,-swfneko),要么是一个目录路径。

常见的参数

Input(输入):

  • -cp path:增加一个类路径,.hx源文件或包(子目录)可以在这个路径下发现。
  • -lib library_name:增加一个Haxelib库。
  • -main dot_path:设置主类

Output(输出):

  • -js file_name:在特定的文件总产生一个JavaScript源代码。
  • -as3 directory:在特定的文件中产生一个ActioinScript 3源代码。
  • -swf file_name:产生特定的文件.swf,FLASH类型。
  • -neko file_name:产生Neko二进制文件。
  • -php directory:在特定的目录中产生PHP源代码。
  • -cpp directory:在特定的目录中,使用本地的C++编译器产生C++源代码。
  • -cs directory:在特定的目录中产生C#源代码。
  • -java directory:在特定的目录中,使用Java编译器编译成java源代码。
  • -python file_name:在特定的文件中产生Python源代码
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值