使用Cairngorm开发Flex(一):Cairngrom的构架
写flex也写了2年多了,居然还没有用过pureMVC或者Cairngrom这样的MVC框架,个人觉得有点丢人了。大概看了一下,框架的结构和以前自己开发的时候差不多。但是,虽然是一样,也不够专业啊,于是发了把狠,开始决定研究下Cairngorm,不能落后不是^^。先了解下Cairngorm的分层思想:
什么是Cairngorm
cairngorm中文名是“烟水晶”,不知道“烟水晶”是啥东西,它是一个轻量级的Flex RIA程序开发框架,从而使程序的扩展性、可维护性都大大提高,不要把他看的有多神圣,个人认为其实就是一个开发的骨架,按这个骨架开发的话,可以实现三层解耦,各层次之间使用消息通讯。Cairngorm主要是对开发flex应用程序加入了一系列的设计模式,从而使开发出来的flex程序可扩展性,可维护性的都大大提高。
Cairngorm的构架
借用一张别人的构架图:
可以看到主要有6个组件:
view
front controller
command
business delegate
model locator
service locator
现在来了解一下每一个组件都是负责什么工作的,结合上面的图会更加清晰:
view:我们在这里保存自定义的视图组件,要使用model locator中的数据,是cairngorm event事件产生的地方。
front controller:这个组件主要就是实现映射,他会监听cairngorm event,把响应映射到cairngorm command里面的响应函数上。这有这一个功能。
command:业务逻辑层,功能核心,他负责更新model locator,调用business delegate或者其他command
business delegate:他负责http,web service的方式的通信,由Command创建,返回结果给Command。
model locator:我们程序的运行时项目都保存在这里,必须是可绑定的,而且是单例。
service locator:在这里定义远程访问的对象。
了解了这个框架的构架以后,下一篇文章会提供一个demo,结合demo就能明白cairngorm怎样在项目中被使用了。
相关文档:
有好用的东西一定要共享。
PaginationDataGrid.mxml文件分页组件
<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="400" height="300">
<mx:Script source="../../../common/utils/Commo ......
在Application中添加非UIComponent组件
譬如以下代码就会报错:
private function init():void { var sp:Sprite = new Sprite(); addChild(sp);}
TypeError: Error #1034: 强制转换类型失败:无法将 flash.display::Sprite@156b7b1 转换为 mx.core.IUIComponent。
这是因为Application的addChild方法并非完全继承自 ......
Flex
与 Asp.Net 通过 Remoting 方式进行通讯
Flex 与 Asp.Net 通过 Remoting 方式进行通讯 (一)http://hi.baidu.com/tsengyuen/blog/item/644e98a3353f7287471064ef.html
Flex 与 Asp.Net 通过 Remoting 方式进行通讯 (二)http://hi.baidu.com/tsengyuen/blog/item/af02730d58d6d7266059f3e8.html
Flex 与 Asp.Net 通 ......
’shift’ + ‘tab’:左移代码; [方便]
”tab’:右移代码; [方便]
‘alt’ + ‘/’:代码提示,导入类; 或者自己在key里找到 content assist自己设置
‘ctrl’ + ‘空格’:同上; 如果与输入法切换快捷键相同需要将输入法的快捷键更改成其他组合[方 ......
打印实际上不是
Flex
的
强项。你是否试过打印复杂的文档?报告是不是看上去总 是那么模糊,很费墨?
为了用
Flex
打印高质量的报告,我想要克服以下几个主要问
题:
·
打 印输出基本上是大图像,需要花费很长时间打印;
·
打 印输出看上去模糊,不够高质量的文档;
·  ......