相信用过 Titanium(以下简称Ti) 做项目的朋友都知道,对于页面之间的切换效果好像还并没有什么太好的解决,在ios下可以使用NavigationGroup控件,但如果在 android下就只能直接open了,基本上没有任何动画效果,而且就算是直接使用 NavigationGroup ,最多也只能左右移动进行切换,不能从上到下或者从下到上的切换。
就是为了这个页面切换效果,我也寻找了不少开源项目,好不容易才在偶然的机会下发现了silver,其可非常好地支持ios & android,可以达到 NavigationGroup 的效果,但也只是左右移动而已。一番研究后,发现其实其原理也很简单,只是将2个view的左右边框位置的变换,因此我就再加以修改,现在已可支持上下移 动的效果了,同时在不断完善修改中,就产生了CBMVC这个框架!^_^
CB,其实就是我的博客站 Coder Blog 的缩写,至于MVC嘛,就不需多解释啦 。这个框架现在有以下的功能和特点:
1. 使用 MVC + commonJS 架构,MVC 使得在代码结构上更清晰,整个框架甚至整个app都将基于一个namespace下,有效防止内存泄露和代码冲突,而 commonJS 可让代码模块化,提高重用性和执行效率
2. 支持全方位(上下左右)的界面切换动画效果,同时支持ios & android
3. 更加灵活高效的样式分离。在CBMVC里,已不需要使用 jss or rjss 样式,因为无论是 jss 还是 rjss,其目的都是为了更好地进行界面与代码的分离,现在CBMVC是将所有样式代码都放到一个 CB.Styles 的命名空间下,其对应每个 view 会有自己的一套style,如view名称是 'home',则其样式将是 :
logo : {
width : 'auto',
top: '15%',
textAlign : 'center',
color : 'blue',
font : {
fontSize : '18dp',
fontWeight : 'bold'
},
text: CB.Util.L('logo')
}
}
在view里就可以这样直接调用:
view.name = __exports.viewName;
// 直接就可以创建元素,这样在view里的代码就非常简洁了
view.add(Ti.UI.createLabel(CB.Styles[view.name].logo));
4. 支持直接刷新当前页面,不需重新启动程序即可直接在模拟器看到修改界面代码后的效果,方便调试
5. 支持多语言的设置。直接使用xml文件进行多语言的控制,转换语言后马上生效,不需依靠修改手机里的语言环境
6. 方便灵活的Debug功能,可以直接输入整个对象,指定行数和输出的文件。同时可直接为页面添加刷新按钮以便调试,包含在样式里也可以控制开启debug功能,为页面上的元素添加上边框方便查看定位(但要手式添加需要添加边框的元素)
7. 可直接设置API地址以供Ajax方法调用
8. 数据模型集成了 joli 类库,这是一个非常不错的ORM库,很喜欢其灵活的语法
OK,主要的功能就是以上几项,当然还有其他细小的辅助功能,以后再慢慢说明啦!最后再说一下的是,CBMVC是一个开源项目,感兴趣的朋友可以直接到以下地址下载,已有一些基本的用法介绍:
https://github.com/CBMVC/CBMVC-Framework-with-Titanium