最近在手上的项目开发中,从原来的使用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. js 模板引擎 jade使用语法

    Jade是一款高性能简洁易懂的模板引擎,Jade是Haml的Javascript实现,在服务端(NodeJS)及客户端均有支持. 功能 · 客户端支持 · 超强的可读性 · 灵活易用的缩进 · 块扩展 ...

  2. Collection类学习笔记

    binarySearch原理: public static index halfSearch(List<String> list, String key) { int max,min,mi ...

  3. Oracle 如何写出高效的 SQL

    转自:Oracle 如何写出高效的 SQL 要想写出高效的SQL 语句需要掌握一些基本原则,如果你违反了这些原则,一般情况下SQL 的性能将会很差. 1. 减少数据库访问次数连接数据库是非常耗时的,虽 ...

  4. Nginx 之四: Nginx服务器的rewrite、全局变量、重定向和防盗链相关功能

    一:Nginx 后端服务器组的配置: 1.upstream: 用于设置后端服务器组的主要指令,upstream类似于之前的server块或http块,用法如下: upstreame Myserver{ ...

  5. python概要

    python与r语言接口Rpy,统计 科学计算,数值拟合:numpy,scipy 可视化2d:matplotlib,Pylab 可视化3d:mayaviz 复杂网络:networkx 交互终端: bs ...

  6. Gartner 认可 Microsoft 为应用程序平台即服务的领导者

    对于 Windows Azure 而言,2013 年是了不起的一年.客户使用量每月都创新高:4 月份 Windows Azure 基础结构服务一经正式发布即受到前所未有的青睐,成为重要的里程碑.Gar ...

  7. Android网络开发之用tcpdump抓包

    Android开发过程中,当涉及到网络通信的时候,有一些字段须要抓包获取.我之前由于SSDP设备发现的包头格式没有写对,经过抓包分析和标准包头对照发现了这个困扰我非常久的问题.总之,掌握在Androi ...

  8. Mahout机器学习平台之聚类算法具体剖析(含实例分析)

    第一部分: 学习Mahout必需要知道的资料查找技能: 学会查官方帮助文档: 解压用于安装文件(mahout-distribution-0.6.tar.gz),找到例如以下位置.我将该文件解压到win ...

  9. ThinkPHP - 连贯操作 - 【实现机制】

    <?php //模型类 class Model { //数据库连接 private $_conn = NULL; //where语句 private $_where = NULL; //表名称 ...

  10. c++,派生类对象可以对基类赋值,基类对派生类不可以赋值

    派生类对象可以对基类对象赋值,赋值时属于派生类独有的部分就舍弃不用. #include <iostream> using namespace std; class DemoA { publ ...