`
wangyisong
  • 浏览: 238112 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

跟我StepByStep学FLEX教程------Cairngorm之核心控制流程

    博客分类:
  • FLEX
阅读更多

跟我StepByStepFLEX教程------Cairngorm之核心控制流程

 

 

说明:该文系作者原创,请勿商用或者用于论文发表,转载必须经作者同意并且注明出处。

 

      这一讲结合Demo对Cairngorm的核心控制流程进行讲解,也帮助读者梳理一下对Demo代码的认知。

      下图就是Caringorm的事件流程



        

      在操作View也就是页面的过程中会派发Event,然后由Front Controller影射分配给对应的Command,Command做完相应的业务处理更新ModelLocator的数据,由于ModelLocator(上一讲讲过)共享的原因,View自动会更新所显示的内容。

 

      了解了这个基本流程后,读者对核心控制流程的认知就会更加清晰了:

      Events:就是操作View或者其它设计产生的事件;

      FrontController:就是注册Command和Event的对应关系,来把Event进行影射分配给相应的Command;

      Command:进行业务处理,更新ModelLocator(至于Command部分如何利用Delegate和Service连接则在下一讲中进行详细描述);

 

      这下读者就很清楚了这三者之间的关系以及Cairngorm这么做的基本原理。

      很显然,也就对应了以下的代码结构:


 

      events目录下的AddPhotoToCartEvent.as和LoadPhotosEvent.as,继承自CairngormEvent。PhotoEvent让操作者选择图片时发出事件(FStop.mxml中操作事件触发)。

      在FSController.as中定义(建议读者建一个controller的目录),继承自FrontController,负责将Event注册到Command,也就是接收到Event就分配给Command,代码如下:

     addCommand(LoadPhotosEvent.EVENT_ID,LoadPhotosCommand);
     addCommand(AddPhotoToCartEvent.EVENT_ID,AddPhotoToCartCommand);

 

     在FStop.mxml中操作者触发代码:

     //选择图片时触发AddPhotoToCartEvent

   private function photoSelectedHandler(event:PhotoEvent):void
   {
    var addEvent:AddPhotoToCartEvent=new AddPhotoToCartEvent(event.selectedPhoto);
    addEvent.dispatch();
   }

   //初始化系统时触发LoadPhotosEvent

   private function initApp():void
   {
    var event:LoadPhotosEvent=new LoadPhotosEvent();
    event.dispatch();
   }

    

       这下读者对代码是不是清晰很多了:)

      下一讲对Command如何利用Delegate和Service连接进行讲解(说句实话,尽管作者也遵照这个规范去编写,但是仍然感觉Cairngorm架构对业务层的处理定义的过于复杂了,仅个人观点,非官方,呵呵)。

     

     
 

     

     

 

 

  • 大小: 19.2 KB
  • 大小: 10.3 KB
3
2
分享到:
评论

相关推荐

    跟我StepByStep学FLEX教程------王一松

    ### FLEX教程知识点详解 #### 1. FLEX概述 - **FLEX介绍**:FLEX是一种用于构建跨平台富互联网应用程序(RIA)的技术。它使用了一种名为MXML的标记语言来创建用户界面,并利用ActionScript进行逻辑处理。FLEX能够...

    跟我StepByStep学FLEX教程-王一松.pdf

    16. Cairngorm核心控制流程:Cairngorm框架的控制流程是其核心之一,包括模型定位器(Model Locator)和核心控制逻辑(如命令模式实现等)。 17. Flex与Hibernate整合:Hibernate是一个对象关系映射(ORM)工具,...

    跟我StepByStep学FLEX

    根据给定的信息,我们可以将《跟我StepByStep学FLEX》这本教程的主要知识点概括如下: ### FLEX基础 #### 概述 - **FLEX介绍**:FLEX是一种用于构建跨平台桌面应用程序和移动设备应用程序的技术。它结合了HTML、...

    StepByStep学FLEX教程.pdf

    - **学习目的**:本教程旨在为初学者提供一个系统的学习路径,通过一系列的实际案例逐步深入理解FLEX的核心概念和技术细节。适合那些希望从零开始学习FLEX的新手。 #### 二、安装配置 - **Flex 3及其Flex Builder...

    flex-超好的flex学习资料

    《跟我StepByStep学FLEX教程》是由王一松编写的,旨在通过一系列深入浅出的示例,帮助读者从零开始掌握Flex的各项技术要点,从而能够独立开发出功能丰富、交互流畅的应用程序。 一、Flex入门与环境搭建 在《跟我...

    Cairngorm一些资料

    《跟我StepByStep学FLEX教程------王一松.pdf》虽然没有明确提及Cairngorm,但作为Flex教程,它应该包含了Flex的基本概念和开发流程,这对于理解Cairngorm的基础和使用环境是有帮助的。通过学习这本教程,开发者可以...

    Flex入门文档 -王一松

    王一松的教程《跟我StepByStep学FLEX教程》全面地介绍了Flex的基础到高级应用。 - **学习路径**:该教程分为多个章节,从基础概念、环境搭建到实际项目的实现,为初学者提供了一条清晰的学习路径。 #### 2. Flex...

Global site tag (gtag.js) - Google Analytics