Foxhole, 这个轻量级,可换肤,易扩展的Starling UI组件现正式受Adobe官方支持,正式更名为Feathers! 用Starling框架做GPU加速2D、3D游戏的同学有福了~
Feathers是移动以及和桌面均适用的UI组件,轻量级,可扩展,具有换肤功能。 Feathers集所有于一包,借GPU驱动的图形之势(多亏有Starling框架)高速绘制平滑响应式体验。
跨平台
利用Feathers可以为iOS,Android,Windows,Mac构建强大的,基于硬件加速的用户界面。通过Feathers, Starling Framework和Adobe的技术可以为所有操作系统创建本地应用。
易于皮肤定制
游戏通常需要UI界面风格和故事情节相匹配,而用户希望得到在某个平台上相似的用户体验。所以Feathers提供了很多皮肤选项和行为,来为移动和桌面应用定制皮肤。
自由和开放源码
Feathers是基于MIT协议开源的,所以您可以随意在商业或开源项目中使用Feathers。扩展和调试可能不太容易,因为您必须读懂和修改Feathers和Starling的源码(译者注:其实代码很清晰,容易读懂)。
概述
- 设计的时候已经考虑到了移动设备.
- 为电话和平板设备的性能进行了优化.
- 支持多点触摸.
- 滚动遵循了移动设备的体验,具备弹性边缘(如果需要的话,您也可以选择传统的桌面滚动条和滚轮控制).
- 易于扩展,适配不同的屏幕尺寸和DPI.
- 简单但功能强大的组件体系.
- 改变属性后,设置"失效",直到Starling的呈现阶段才会渲染(类似Flex).
- getStyle()/setStyle()方法不通过会导致含糊的字符串来设置样式,所有的皮肤和视觉属性都有严格的类型定义.
- 使用 as3-signals 代替事件.
- 工厂方法和接口允许您自定义子组件. 例如,选择最适合手机,平板电脑,或PC的组件类型.
- 易于理解,如果您用过 Adobe Flex 或 Flash Pro AS3 组件的话.
- 所有组件都是基于Starling显示对象的并且可以更换皮肤.
- 组件通常会根据提供的皮肤的大小调整自己的尺寸.
- 子组件可以继承父级的皮肤,一直嵌套下去.
- 支持从其它项目剥离的皮肤代码形成的主题.
- 支持9宫格,3宫格,以及平铺布局.
- 智能的图片管理.
- 插件支持的功能.
- 支持位图和矢量文本渲染. 也可以自定义文本渲染方式.
- 强大的按钮导航系统和过渡动画.
- 拖拽支持.
- 弹出窗体(模态和非模态).
组件
Feathers包括许多不同的组件,比如按钮,滑块,拨动开关,复选框,单选按钮,列表,进度条,文本输入,标签,导航,容器,标注等等。来看看其中一些组件的几个值得注意的特点。
- 按钮
- 可以为每个状态定义皮肤和图标, 包括 up, hover, down, 和 disabled.
- 额外的 toggle/selection 行为.
- 文本输入
- 使用操作系统的本机输入,支持选择,复制和粘贴.
- 滚动容器
- 可以支持任何类型内容的滚动控制.
- 多种内置布局,还可以自定义布局.
- 列表
- 可滚动的列表,单项可以选中.
- 可定制的布局方式.
- 布局虚拟化(提高性能).
- 可改变itemRenderer的尺寸.
- 自定义 itemRenderers.
- 提供一个默认的itemRenderer类,来显示文本和图标,以及和按钮相似的视图状态.
- 一个 ListCollection 实现对数据的封装. 支持 Array, Vector, 和 XMLList.
- 分组列表
- 提供更强大的列表功能.
- 提供分组显示功能.
- 为headers, footers, 和 items指定独立的渲染器.
- 多维的数据描述.
- 屏幕导航
- 使用事件或消息来驱动屏幕切换 (如游戏中的菜单).
- 屏幕切换时的数据共享
- 为屏幕切换指定动画.
中文网站:http://www.starlinglib.com/wiki/News:Starling_Feathers
官网地址:http://feathersui.com/