www.adobeshow.com

Cairngorm实例

<Category: Adobe, Cairngorm, Flex, Flex3, Flex4> 查看评论

一个简单Cairngrom实例
算不上写教程,只是自己学习Cairngorm之后,通过制作一个简单的例子之后的一点心得分享。适合对AS3精通,对Flex熟悉,对Cairngorm了解的一些朋友。至于Cairngorm是做什么用的,他的优点和缺点不作太多评判。我们只想通过一个简单的实践了解如何使用这个框架,加强对他的认识。如何学习Cairngorm,提点小意见,算是自己的学习历程。Cairngorm是一个框架,是许多的设计模式的结合体,加上消息机制的传递数据。所以学习之前,还得苦下功夫去了解一些常用的设计模式,如单列模式,命令模式等等。
参考cairgorm框架中的结构来创建我们自己的文件结构,如下图所示。com中的adobe包是开源的cairgorm框架结构,test是我们自己创建的。同样我们也需要 business 、command 、control 、model 、view 、VO包,同时加上我们自己的event包。

Business包中主要放置与服务器交互的相关类。
Command包放置自定义的命令方法。
Control包放置控制类,用来注册命令方法。
Model包放置数据模型类,单列模式。
View包放置视图界面相关。
Vo包放置自己定义的数据格式。
Event包放置自己定义的一些事件类。

具体他们是怎么联系起来的,我们不需要太清楚。我们只要知道以下几点:
1.界面文本框中的数据是来自数据模型MainModelLocator(单列模式)提供,MainModelLocator中包含了VO包中的数据格式。

2.界面初始化完成之后,会发出一个需要加载XML的事件ControlEvent.UPLOAD_XML,该事件是我们event包中,我们自定义的事件,他继承于CairngormEvent。

3.控制类MainControl,他继承于FrontController,负责侦听所有的事件。当他侦听到有加载XML数据的事件后,他会注册命令方法GetTxtDataCommand,GetTxtDataCommand实现Command接口。我们在这个类的execute方法中书写我们的代码。我们需要创建HTTPServiceDelegate对象来加载XML,返回的结果由自己来输出。所以GetTxtDataCommand还需要实现Iresponder接口中的result(e:ResultEvent)和fault(e:FaultEvent)的方法。最后我们得到了xml中的数据,传递给单列数据模型MainControl中的VO对象。最后再通知视图view来显示文本信息。
4.另外,当我们点击“往上看”和“往下看”的时候,也会发出ControlEvent事件,流程和上面一样,最后由DownshowCommand和UpshowCommand来实现显示效果

本文来自: Cairngorm实例

发表评论