最近在手上的项目开发中,从原来的使用Sprite全手写UI,开始逐步使用StablexUI,感觉还是相当不错的,强大、高效、轻量、灵活,非常适应我当前的实际需求。

不过作为小种语言的一个小众第三方开源库,虽然StablexUI的官方文档还算比较全面,但实际使用中遇到的很多问题都是文档未涉及或语焉不详的,需要参考源代码进行分析,这里会使用系列博文的形式,把我的学习心得记载下来,一方面作为备忘供自己未来查询,也可供其他开发者参考。

首先简单介绍一下StablexUI库。

StablexUI是一个纯Haxe语言的跨平台UI库,作者是一个俄国人,大概是从今年(2013)初正式发布的。

Github项目主页:https://github.com/RealyUniqueName/StablexUI

官方文档:http://ui.stablex.ru/doc/

需要特别指出的是,在StablexUI之前,专为Haxe开发的,同时适用于桌面、移动设备和浏览器的UI框架还基本不存在。因为那个时候我就深切感到了在没有UI框架支持的情况下编写界面的繁琐,特意评估了很多UI库,但是没有找到特别合适的。

我评估过的UI库包括:

HaxeAswing: 国人作品Aswing的Haxe移植版,感觉主要适用于桌面,风格不太适合移动设备

waxe: C++ UI库wxWidget的Haxe接口,不能跨平台

FeaturesUI: 基于Starling的UI库,很适合移动设备,但仅有AS3版本

后来大概在2012年底、2013年初这一段时间,出现了HaxeUI和StablexUI这两套第三方UI库,目前看来都是比较不错的选择。

HaxeUI是一套比较中规中矩的UI框架和组件库,但它的设计中其控件基类不是基于Sprite的,初期版本也不支持xml形式的界面定义。

而StablexUI虽然出现的比HaxeUI略晚,但让它成为我的最终选择的是它的几大突出特点:

* 从一开始就支持由xml生成界面,即所谓数据驱动开发。

* 充分利用了Haxe的宏语言特性,其xml解析发生在编译期,生成的界面构建代码极为高效。

* 控件基类派生于Sprite,可以方便灵活的集成于现有项目中。

* 库的架构设计非常轻量级,层次很少,灵活易于扩展。

* 真正的跨平台,完美支持Flash, C++ native, Html5。可试用官网中提供的demo:Flash版Html5版

Haxe UI框架StablexUI的使用备忘与心得(序)的更多相关文章

  1. Haxe UI框架StablexUI的使用备忘与心得(一)

    这一节先来说说StablexUI的基本方面. 安装与使用,在官方文档里Getting Started一章里写的很清楚,这里就不展开了,简单总结来说: * StablexUI依赖于actuate缓动库和 ...

  2. 树的遍历顺序 - dfs序|欧拉序|dfn序(备忘)

    (仅作备忘) dfs序是dfs过程中对于某节点进入这个节点的子树和离开子树的顺序 满足每个节点都会在dfs序上出现恰好两次 任意子树的dfs序都是连续的 欧拉序是dfs过程中经过节点的顺序 每个节点至 ...

  3. ASP.NET MVC搭建项目后台UI框架—11、自动加载下拉框查询

    ASP.NET MVC搭建项目后台UI框架—1.后台主框架 需求:在查询记录的时候,输入第一个字,就自动把以这个字开头的相关记录查找出来,输入2个字就过滤以这两个子开头的记录,依次类推. 突然要用到这 ...

  4. AngularJS之备忘与诀窍

    译自:<angularjs> 备忘与诀窍 目前为止,之前的章节已经覆盖了Angular所有功能结构中的大多数,包括指令,服务,控制器,资源以及其它内容.但是我们知道有时候仅仅阅读是不够的. ...

  5. ASP.NET MVC搭建项目后台UI框架—5、Demo演示Controller和View的交互

    目录 ASP.NET MVC搭建项目后台UI框架—1.后台主框架 ASP.NET MVC搭建项目后台UI框架—2.菜单特效 ASP.NET MVC搭建项目后台UI框架—3.面板折叠和展开 ASP.NE ...

  6. Unity3D 搭建优雅的UI框架

    为什么要使用UI框架?直接使用NGUI或UGUI一拖一拉直接搭载出界面不就行了? 我相信很多小白,包括我在刚学习Unity3D UI的时候都这样想过. 我的第一款款Unity2D游戏<山地赛车& ...

  7. Nmap备忘单:从探索到漏洞利用(Part 5)

    这是备忘单的最后一部分,在这里主要讲述漏洞评估和渗透测试. 数据库审计 列出数据库名称 nmap -sV --script=mysql-databases 192.168.195.130 上图并没有显 ...

  8. [原]TCP/UDP使用细节备忘

    body { font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI ...

  9. HTML5终极备忘大全

    二.文字备忘之标签 HTML5中新增的标签 <article> 定义文章 <aside> 定义页面内容旁边的内容 <audio> 定义声音内容 <canvas ...

随机推荐

  1. 关于hibernate子查询参数的问题

    private Map<String, Object> createWblHqlContext(boolean needGroup, String startDate, String en ...

  2. Value Categories

    Value categories Three primary categories primary categories mixed special Each C++ expression (an o ...

  3. [条款36]绝不重新定义继承而来的non-virtual函数

    看下面的两个类的声明代码: class B { public: void mf(); //something to do }; class D : public B { public: void mf ...

  4. RPC框架——简单高效hessian的使用方式

    RPC(Remote Procedure Call Protocol) RPC使用C/S方式,采用http协议,发送请求到服务器,等待服务器返回结果.这个请求包括一个参数集和一个文本集,通常形成“cl ...

  5. python subprocess重定向标准输出

    subprocess.call("ping -c 1 %s" % ip,shell = True,stdout = open('/dev/null','w'),stderr = s ...

  6. 无法更新 EntitySet“GuigeInfo”,因为它有一个 DefiningQuery,而 <ModificationFunctionMapping> 元素中没有支持当前操作的 <InsertFunction> 元素。

    1:实体中必须有主键 2:删除创建的模型重新创建

  7. 《Clean Code》重点内容总结

    读书笔记请见Github博客:http://wuxichen.github.io/Myblog/reading/2014/10/06/CleanCode.html

  8. POJ 1330 Nearest Common Ancestors LCA题解

    Nearest Common Ancestors Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 19728   Accept ...

  9. [POJ 1521]--Entropy(哈夫曼树)

    题目链接:http://poj.org/problem?id=1521 Entropy Time Limit: 1000MS    Memory Limit: 10000K Description A ...

  10. Ubuntu14.04 Y460闪屏问题解决方案

    我的笔记本是联想Y460,安装了Ubuntu之后发现屏幕闪烁移位,而且在使用IDE的时候出现无法输入中文等问题,其实是显卡驱动的问题,N卡官网给的驱动不好用,尝试使用大黄蜂 参考:https://wi ...