1.Cairngorm流程控制
这一节我将向大家介绍Carirngorm的流程图
3.流程详解
当用户操作View的时候,也就是我们的flex页面的时候会派发dispatch Event事件,然后Front Controller映射Event事件给Command,Command做相应的业务逻辑并更新Model Locator的数据,由于Model Locator可以共享对象的功能,所以前端View 可以自动更新。
我们了解了这样的一个基本流程后,相信大家对我们的Cairngorm流程有了更进一步的认识。
Event:操作前端页面产生的事件。
Frontroller:管理Command和Event之间的关系,形成映射。也就是说把操作的Event分配给相应的Command。
Command:具体的业务逻辑处理,处理完的数据更新Model Locator。具体Command部分是如何利用Delegate和 Service进行连接,我们在下一节中讲解。
相信大家对Cairngorm的事件流程有了进一步的认识。
查看代码的结构我们就可以知道
events包下的AddPhotoToCartEvent.as和LoadPhotoEvent.as,继承了CairngormEvent。PhotoEvent.as是用户操作选择图片的时候触发事件。
在FSController中注册event和command之间的关系
addCommand(LoadPhotosEvent.EVENT_ID,LoadPhotosCommand);
addCommand(AddPhotoToCartEvent.EVENT_ID,AddPhotoToCartCommand);
FStop.mxml中触发用户操作的代码
private function photoSelectedHandler(event:PhotoEvent):void
{
var addEvent:AddPhotoToCartEvent=new AddPhotoToCartEvent(event.selectedPhoto);
addEvent.dispatch();
}
private function initApp():void
{
var event:LoadPhotosEvent=new LoadPhotosEvent();
event.dispatch();
}
通过这样的一个讲解大家是不是对Caringorm的流程更加清晰了呢。
下一节内容我们在继续吧。。。。。。。