市面上没有一个令我满意的生产用UI库,于是决定自己开发一个。在参考了MornUI、FeathersUI、MinimalComps之后,给自己的UI库定下了目标:
1.解耦,类可以脱离框架单独使用
2.可以兼容Flash进行可视化编辑
3.自适应
4.可换肤
5.轻量
下面说一下我是怎么解决的:
1.解耦很简单,将每个组件高度独立,唯一依赖是RainUI的一些全局静态接口。
2.在生成组件内容时,自动检测某些显示对象是否存在,如果存在则使用现成对象,否则新建。
3.组件提供了像素和百分比两种数值(以后可能会加上物理尺寸),以及left top bottom right的相对位置模式。
4.由RainUI根据theme给组件提供皮肤。组件不知道theme的存在
在实际操作中遇到不少问题
1.Flash组件和参数会强行修改参数默认值。
2.Flash并不能实时显示自适应效果。
3.用代码处理元件参数,效率非常低。
4.用xml处理元件参数,需要配合可视化编辑器。
5.可视化编辑器开发麻烦,且并不如Flash来得方便。
这就形成了一个死循环,唯一解开的方案是,开发一个足够好用且优秀的可视化编辑器。。。额,等我再考虑一下吧。