`
longgangbai
  • 浏览: 7357157 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

FLex 中框架Carngorm的流程和工作原理

阅读更多

Cairngorm2.2 框架中六大元素:

bussiness(services,delegate),commands ,control(FrontController和Event),model(modelLocator),view,vo

 

 

 

FLex 中框架Carngorm的流程和工作原理

 

1。View 不但负责显示数据,他换负责派遣事件(Event),通过CairngormEventDispatcher类的getInstance()方法获得唯一的一个CairngormEventDispatcher类型的实例,并且使用这个实例的dispatchEvent方法派遣相应的事件,以便给FrontController捕获这个事件,这个是CairngormEvent类型的,程序元扩展这个事件,使用它可以携带一些数据。

 

如:点击添加事件:

 

 public function addContact() : void
    {
      //构建VO对象

       var contactVO : ContactVO = new ContactVO();
       contactVO.fullname = fullname.text;
       contactVO.emailaddress = emailaddress.text;
     // 创建事件

     var event : AddContactEvent = new AddContactEvent( contactVO );
      //转发事件
     CairngormEventDispatcher.getInstance().dispatchEvent( event );

    } 

 

2。一旦View派遣了一个事件,FrontController捕获这个事件通过addCommand方法把这个事件映射到相应的Command,同时这个事件所携带的数据也一同传递给那个Command了。

 

FrontController中相等于一个HashMap对象

  protected var commands : Dictionary = new Dictionary();

其中

 

添加命令的方法:

 public function addCommand( commandName : String, commandRef : Class, useWeakReference : Boolean = true ) : void

 

删除命令的方法:

  public function removeCommand( commandName : String ) : void

 

执行命令方法的

  protected function executeCommand( event : CairngormEvent ) : void

 

Responder接口必须实现的方法:

  function onResult( event : * = null ) : void;

   function onFault( event : * = null ) : void;

命令必须实现的接口:Command,Responder接口


   

在自定义控制器中继承子前端控制器(FrontController类)

必须调用父类的方法注册事件的Command命令

如下:

public class AddContactControl extends FrontController
 {
  public function AddContactControl()
  {
   addCommand( AddContactControl.EVENT_ADD_CONTACT, AddContactCommand );
  }
  
  public static const EVENT_ADD_CONTACT : String = "addcontact";
 }

 

模型控制器必须继承自ModelLocator类,

同时声明操作对象

 

VO必须继承子ValueObject对象。

 

3。commands通过execute()方法接受那个事件,然后执行需要的动作,如果需要与后台打交道(例如提交数据或读取数据),那就要通过Delegate来跟后台大交道了,Delegate负责选择rpc(这个rpc在services里定义好并先在DefaultApplication里实例化),然后启动他,需要提交的数据是由那个事件携带的,command接收事件后,把事件所携带的数据由Delegate处理,在这里,Delegate会有result(data:Object)和fault(info:object)方法,当提交数据成功或失败后调用,然而在这两个方法里,都会获取相应的处理结果(例如提交成功后会接收后台返回的数据,这些数据被存放在data参数的result属性里)通常在这两个方法里,把处理结束后的得到的数据传回给command(类似的在command里也有result和fault方法,然后由command处理这些数据例如用于更新ModelLocator)

 

Command 命令类必须实现接口:ICommand  实现方法    function execute( event : CairngormEvent ) : void;

 

4。如果command通过execute方法接收事件后并不需要与后台打交道,那就不需要Delegate了,直接达到第五步

 

5。command更新ModelLocator 里的数据,无论之前的走那一步,必须更新ModelLocator大概都是必须的。

 

6。一旦ModelLocator被更新,view里的数据也自动更新,因为View绑定了ModelLocator,view的数据由ModelLocator提供的。

 

分享到:
评论

相关推荐

    Flex Mate框架swc包及Mate用法

    Mate框架的核心思想是通过事件驱动的方式来管理应用程序的状态和流程,这在大型Flex项目中尤其有用。 Mate框架的SWC库文件(如“library.swf”)是预编译的ActionScript组件,可以被引入到Flex项目中,以利用其提供...

    flex web工作流程图

    综上所述,"flex web工作流程图"涉及到的技术点包括Flex框架、MXML和ActionScript编程、图形组件设计、数据绑定、事件处理、自定义组件开发、状态管理、布局和动画效果,以及后端服务集成。通过这些技术,开发者可以...

    Flex框架的基本原理.docx

    通过这些基本原理,开发者能够理解Flex框架如何组织和控制应用程序的运行,从而更好地利用其强大的功能来构建复杂的用户界面和业务逻辑。Flex框架提供了一套完善的组件库,支持数据绑定,使得开发RIA变得更加便捷和...

    flex开发框架

    Flex开发框架是一个基于Adobe Flex技术的开发工具集,主要用于构建富互联网应用程序(Rich Internet Applications,简称RIA)。在本文中,我们将深入探讨Flex的核心概念、主要特点、开发环境以及如何使用Flex进行...

    flex框架 JAVA-FLEX

    Flex框架是一种基于Adobe Flash Player和Adobe AIR运行时的开源应用程序框架,主要应用于创建富互联网应用程序(Rich Internet Applications,简称RIA)。在Java-FLEX的结合中,Flex提供了前端用户界面的构建能力,...

    Flex开发框架

    Flex开发框架是一个基于Adobe Flex技术的开发环境,用于构建富互联网应用程序(Rich Internet Applications, RIA)。Flex提供了强大的用户界面组件库,使得开发者能够创建出交互性极强、视觉效果丰富的Web应用。在这...

    Flex Cairngorm框架生成器

    Flex Cairngorm框架生成器是一款专门针对Adobe Flex开发的工具,旨在简化Cairngorm...通过阅读该博客,你可以深入理解Flex Cairngorm框架生成器的工作原理,以及如何将其融入到自己的开发流程中,提升开发质量和速度。

    Flex+Java登录实例完整框架 基于Flex框架

    这个框架主要用于创建富互联网应用程序(Rich Internet Applications,RIA),提供丰富的用户体验和强大的后端数据处理能力。Flex 是一种用于开发具有交互性和动态图形效果的前端用户界面的开源框架,而Java则作为...

    flex框架之Cairngorm框架(一)

    flex框架之Cairngorm框架,包括Cairngorm框架

    Flex MVC框架下载

    这些文档对于开发者来说至关重要,它们可以帮助理解框架的工作原理,指导如何将框架集成到项目中,以及如何创建和管理MVC组件。 总的来说,这个压缩包提供了一站式的解决方案,让开发者能够快速地在Flex项目中引入...

    flex_4框架类_关系图

    通过这份关系图,开发者可以清晰地看到Flex 4框架内部的层次结构和组件间的关系,这对于理解和优化应用程序的设计、性能和可访问性至关重要。此外,对于从事自动化测试的工程师来说,`mx.automation.delegates`包下...

    SpringFlex框架搭建

    在开发过程中,可以使用STS提供的Flex Builder视图来调试和测试Flex应用程序,同时利用Spring的强大调试工具来检查后端服务。当一切准备就绪后,通过Maven的install命令编译并打包项目,部署到服务器上,例如Tomcat...

    一款轻量级的FLEX MVC开发框架

    6. **源代码**:包含在压缩包中的源代码可能是框架的核心部分,开发者可以通过阅读和修改源码来了解框架的工作原理,甚至对其进行定制。 7. **安装和使用指南**:通常,压缩包内的README文件会提供关于如何安装、...

    flex 拖拽框架和图表服务的实现

    在本项目中,“flex 拖拽框架和图表服务的实现”是一个利用Flex技术创建的交互式应用,允许用户通过拖放操作来交互地操纵界面元素。下面将详细介绍这个项目中的关键知识点。 1. Flex框架:Flex是ActionScript 3.0的...

    flex工作流程图+源代码

    在Flex中,工作流程涉及多个关键步骤,包括设计、开发、编译和部署。下面,我们将深入探讨Flex的工作流程图以及源代码相关的知识点。 1. 设计阶段: 在Flex项目开始时,通常会进行UI设计。设计师使用工具如Adobe ...

    Flex SSH 框架整合应用

    - **Flex**: 是一种用于构建桌面和移动设备的高性能、丰富的互联网应用程序(RIA)的开源框架。它使用MXML(一种XML方言)来定义用户界面,并使用ActionScript(一种基于ECMAScript的标准语言)来处理业务逻辑和控制...

    Flex+Java完美整合框架

    ClearToolkit可能是一个自定义的工具集或者框架,用于辅助Flex和Java的集成工作,提供额外的功能或简化开发流程。然而,具体的功能和使用方法需要查看相关的文档或者源代码才能详细解释。 在整合过程中,`site.xml`...

    ESRI Flex Viewer框架

    ESRI Flex Viewer框架是用于构建基于ArcGIS Server的交互式地图应用的一个强大的开发框架。它由ESRI(Environmental Systems Research Institute)公司推出,主要用于构建Web GIS应用,为开发者提供了便捷的方式来...

    arcgis的flex开发框架和demo

    本文将深入探讨ArcGIS Flex API的开发框架,并通过提供的示例程序,帮助读者快速上手。 首先,我们来看ArcGIS Flex API的核心特性。它基于ActionScript 3,充分利用了Flex的MXML和AS3语法,使得GIS功能与Flex的用户...

Global site tag (gtag.js) - Google Analytics