惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
DataBreaches.Net
F
Fortinet All Blogs
D
Docker
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
WordPress大学
WordPress大学
罗磊的独立博客
Y
Y Combinator Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
J
Java Code Geeks
T
The Blog of Author Tim Ferriss
U
Unit 42
N
Netflix TechBlog - Medium
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
V
V2EX
云风的 BLOG
云风的 BLOG
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
T
Tailwind CSS Blog
Hugging Face - Blog
Hugging Face - Blog
Stack Overflow Blog
Stack Overflow Blog
爱范儿
爱范儿
酷 壳 – CoolShell
酷 壳 – CoolShell
P
Proofpoint News Feed
G
Google Developers Blog
H
Help Net Security

博客园 - w i n s o n

Claude Code 的替代品:OpenCode — 开源免费的 AI 编程神器 使用Ajax生成的Excel文件并下載 CBMVC For Titanium Alloy 发布! .Net插件框架的实现及分析(三) .Net插件框架的实现及分析(二) .Net插件框架的实现及分析(一) 在类库中调用资源文件实现国际化! Javascript下调用.Net资源文件,实现语言国际化 让 PowerDesigner 支持 SQLite! 理解依赖注入及其好处! 图文说明如何使用T4在VS2008里生成代码 Winson.Framework 3.3 发布!! Silverlight学习问题总结(一) Winson.Framework 3.2 发布!!! 通过反射自动填充实体 Winson.Framework 3.0 正式发布!! Winson.Framework 2.5 发布! Winson.SqlPager 2.5 发布! [心得]VS2008免编译立即生效的方法
CBMVC Titanium Framework 介绍
w i n s o n · 2012-07-06 · via 博客园 - w i n s o n

2012-07-06 00:02  w i n s o n  阅读(1867)  评论()    收藏  举报

这段时间除了要照顾一下BB外,其余时间都在研究Titanium了,因为项目需要,所以还是觉得应该有一套自己的框架才比较好啊!经过一番努力后(对官方文档看了又看 ^^ ),终于慢慢形成了一套比较完整的MVC框架了,这套框架其实也是基于另一个开源的项目(silver)的基础上进行修改的,不过除了一些核心代码外,基本上已被我改得“面目全非”了,呵呵~

相信用过 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',则其样式将是 :

CB.Styles.home = {
        logo : {
            width : 'auto',
            top: '15%',
            textAlign : 'center',
            color : 'blue',
            font : {
                fontSize : '18dp',
                fontWeight : 'bold'
            },
            text: CB.Util.L('logo')
        }
}

 在view里就可以这样直接调用:

//此为开始时设置加载的controller名,这里直接调用即可
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