公司现在基本起步了,项目也接近尾声,但是在项目设计和开发中遇到的问题相当多,做重要的还是界面,MFC界面好用是好用限制太多,一不是一般的难看,对于现在的用户交互来说完全无法达到易用和易看的效果。虽然项目界面是用的FLash来完成的界面,效果也不错,但是Flash的数据交互很不方便,AS语言还在学习中。这两天看到Direct3D中使用的控件效果非常炫,研究了下是用到的DXUT控件库。写了个初步的UI扩展库设计方案。这为初稿以后会进行更改,在开发中我会把方案进行完善,并记下开发过程。
产品简介
设计一套Direct3D下基于GPU渲染的2D平面用户交互界面接口,可同时支持多窗口的高效率渲染。
内置支持JavaScript脚本编程,可随意扩充各类型的窗口控件,支持精简图文混排的HTML渲染。
支持多字体大量文本的渲染。支持多种图像格式,包括静态图像文件 PNG,JPG,TIF,TGA,BMP,DDS等, 动态图像文件GIF和Flash(.SWF)渲染。
1. 简单的GUI控件库(包括按钮、复选框、单选按钮、单行编辑框、多行编辑框、列表控件、静态文本、滚动条、超链接按钮等)
2. 内置JavaScript/LUA脚本,支持自定义控件 (用那个还没想好,初步估计是LUA,因为跟C++关系好,呵呵)
3. 支持多种图像格式,如:PNG,JPG,TIF,TGA,BMP,DDS等
4. 动态图像GIF渲染
5. 支持Flash渲染,并支持内存中Flash文件数据,无需过度文件
6. 动画光标
7. 非规则形状窗口(可透过Alpha层窗口)
8. 多窗口管理,支持窗口缩放和层次窗口管理
基于DXUT的控件库, 用tinyxml来解析配置,根据配置从控件库提取控件,动态生成界面。利用lua或javascript做脚本,也可以直接使用DLL文件来做事件处理关联。 最终会是一个类似CEGUI的东西,不过相对简单一点。
按钮可以通过提供四个状态的个性化纹理来定制,也可以使用库提供的默认纹理。可以只有图片,这通常用于定制。也可以在图片上叠加文字,多数情况下使用库默认的纹理即可;当然也可以自己提供纹理并指定文字。
单选按钮、复选框 可以利用库提供的选中/非选中纹理,也可以定制纹理。
可以自己提供纹理,默认使用库中的纹理。可以指定文字颜色、选中框背景颜色、选中文字颜色等。
支持多列,每列支持文本、图片、简单控件的混合显示。
支持图片和文字。默认没有背景和边框。
不能直接在配置中指定此类型控件,它只是在列表框、组合框、列表控件中被使用。它的纹理可以修改looknfeel文件来指定。
可指定边框颜色和下拉按钮的纹理(四个状态),可指定下拉框高度、滚动条宽度。