SPOD (简单对象数据库)

SPOD 建立在 SQLite 或 Mysql 上. 全称为 Simple Persistent Object Database. SPOD可以映射数据库表(db table)为类(Class). 即每个继承sys.db.Object的类都可以看成为一个数据库表.

因此需要简单地修改类字段或调用类方法即可修改数据库表. 大多数情况下, 你只需要提供一些基础的声明, 而不需要编写单独的 SQL 语句, SPOD 是基于宏的, 也就是说类到数据库表的转换是在编译时完成的,而不是运行时, 这样就不用担心性能的问题.

.....
Javascript

Tips

  • 建议使用 git 版本的 haxe, 可在 http://build.haxe.org 下载

  • 由于 haxe 4 支持模块内的函数/变量, 而且 extern 可以直接用于字段,

    // 例如可添加类似于如下代码到任何类, 之后通过 import.hx 引入即可
    @:native("console") extern var console : js.html.ConsoleInstance;
    @:native("document") extern var document : js.html.Document;
    @:native("window") extern var window : js.html.Window;
    
.....
nekovm

一些示例:

.....
hxcpp

hxcpp-guide 最好的文档

.....
haxe 语法日志

一些链接:

编程参考-旧文档

黑魔法-旧文档

在编译时可以不指定 -main, 例: haxe -js lib.js MyClass, 但只可以指定一个类.

如果一个 .n 文件是以 haxelib run 来运行的, 那么可以通过检测环境变量 HAXELIB_RUN 的值是否为字符串 “1”, 更多细节…

.....
将 SWF 打包成 AIR

之前以为打包成 .air 由于需要安装,因此很不方便. 后来发现其实 adobe 有工具打包成bundle的形式(window平台打包成exe文件).可以使用flash.html.HTMLLoader 加载普通的网页, 相比 nw.js 打包网页要小20M左右, 最简单的方法是用 flashdevelop 创建一个 haxe/air 的示例.

.....
Flash

可以说 haxe 的目标平台最稳定的就是 flash 平台了

  • flash.Lib 提供几个方法,也许会很有用, 如:

    // 在浏览器中将 trace 输出到浏览器的 console
    // 当你的 flash 需要在浏览器中调试时这非常有效
    Lib.redirectTraces()
    
    // 调用 flash 原生的 trace,例如当你在处于 Worker 时,就能能用这个方法了
    // 如果你用 flashdevelop 可以在 视图 -> flash 日志视图里看到输出,
    Lib.trace(arg:Dynamic)
    // 或者加上 -D fdb 参数将重定向所有 trace 语句
    
.....
API 文档构建

使用 haxe dox 来构建 API 文档. 参考这个库的 Readme 你能直接获得最新Haxe API.

  • 参考 gen.hxml 如何从 hx源码中导出 xml 文件,

  • 参考 std.hxml 如何获得 API HTML

  • dox 默认的模板使用的 CSS 框架为 bootstrap 2.3.2

  • https://github.com/dpeek/dox/wiki/Using-Dox

.....
游戏开发工具

更多的资源, 其实这二个链接就包含了所有

本文档源文件为: http://haxeflixel.com/documentation/game-development-tools/

.....
命令行参数

主要描述 haxe, haxelib, nekotools 三个命令, haxe 命令行会经常在 .hxml 文件中用到

haxedoc

haxedoc 命令已经被弃用,而改用了另一个叫haxelib dox, 但是 生成 xml 还是用的 haxe -xml 命令

.....
AS3 和 Haxe 语法对比

本文档的目的是帮助 熟悉 Actionscript 3 的开发人员快速入门 Haxe。更多 Haxe 特定文档请参阅主要的 Haxe.org.

.....
C# 语法对比

语法差异:

  • c# 使用 namespace 来管理组织类, haxe 则使用类的所在目录(package) 方式

    c# 的文件名可随意, 而 haxe 的文件名则作为模块名, 路径则为包名.

  • c# 可使用 struct 用于创建紧凑数据(从栈上分配), haxe 没有相关功能,

    虽然 haxe 中的”匿名结构”看上去非常像 struct , 但”匿名结构”是一种低性能的 Dynamic 结构数据,

    c# 中的 struct 无法被 sizeof 识别, 限制非常多,当成 传值类型 的 tuple 来用就算了。 而且虽然有 fixed 关键字能在 struct 中定义固定数组, 但属于 unsafe 级别的操作。

  • 对于 c# 中的固定数组, 在 haxe 中 haxe.ds.Vector 是个类似固定数组的容器

  • c# 中有 goto 跳转, 而 haxe 中没, 并且 haxe 中的 break 只能跳出当前循环。

  • vs 中 ctrl+K...ctrl+F 可以格式化选择了的代码, 而 haxe 没有相关工具。

.....
Java 与 Haxe 语法对比

下边将使用 Haxe/HL 平台来和 Java 对比.因为都是虚拟机。

.....