Flex Robotlegs

一.基于Robotlegs框架 flex应用基本组成

  1. ProjectNameContext.as

    • 用于配置 Robotlegs 的映射
  2. ProjectName.mxml
    • 应用的根视图 ,并且负责初始化 ProjectNameContext
  3. ProjectName-app.xml
    • 应用的基础配置
  4. Controller
  5. Service
  6. Mediator
    • 模块控制器
  7. View
  8. Model
  9. Event

二.组件使用

1.ProjectNameContext

①继承 Context类

②重写构造器

public function ProjectNameContext(contextView:DisplayObjectContainer=null, autoStartup:Boolean=true){
    super(contextView, autoStartup);
}

autoStartup 用以设定是否自定执行 autoStartup()方法

③重写startup 方法 一般用于配置各种注入关系

override public function startup():void{
    //Controller   此处应该默认为事件派发器的事件
    commandMap.mapEvent(LoginEvent.LOGIN_EVENT,   LoginCommand);

    //Model   注入Model
    injector.mapSingleton(UserModel);

    //Services        指定接口,对应的注入类
    injector.mapSingletonOf(ILoginService, AppLoginService);

    //View     为模块控制器 注入对应视图
    mediatorMap.mapView(LoginView, LoginMediator);
    mediatorMap.mapView(RootView, RootMediator);

    //Startup complete
    super.startup();
} 

④初始化

在应用的根视图 ProjectName.mxml下调用

<fx:Declarations>
    <!-- 应用的MVC配置类初始化 -->
    <local:ProjectNameContext contextView="{this}"/>
</fx:Declarations>

2.Controller

①继承Command

②重写构造器

public function ControllerNameCommand(){
    super();
}

③注入 Event,Service,Model

④重写execute()方法

3.Service

  1. 编写接口
  2. 继承Actor
  3. 实现接口
  4. 注入所需类
  5. 编写相关方法

4.Mediator

①继承 Mediator

②注入对应视图,model

③重写构造器

public function LoginMediator(){
    super();
}

④重写onRegister()

override public function onRegister():void {//注册事件
    //注册组件事件绑定
    //                  事件源               事件                   处理方法
    eventMap.mapListener(loginView, LoginEvent.LOGIN_EVENT, loginBtnClickHandler);
    eventMap.mapListener(eventDispatcher, LoginEvent.LOGIN_FAILED_EVENT, loginFailedCallBack);
    eventMap.mapListener(eventDispatcher, LoginEvent.LOGIN_SUCCESS_EVENT, loginSuccessCallBack);
}

⑤添加需要的函数

⑥事件转发

5.Model

  1. 继承Actor
  2. 注入时,使用[Bindable]动态绑定

6.Event

  1. 继承event
  2. 添加所需的属性
  3. 重写构造器
  4. 注意事项:

service 转发事件 用 dispatch(event);

Mediator 用 eventDispatcher.dispatchEvent(event);

视图事件只能转发到Mediator

事件先派发到controller,再到达Mediator

Flex Robotlegs的更多相关文章

  1. Flex入门(三)——微架构之Cairngorm

    大家都知道我们在开发后台的时候,都会使用MVC,三层等分层架构,使后台代码达到职责更为分明单一,高内聚低耦合,比如,Dao层仅仅是进行和数据库打交道,负责处理数据:Service(B层)仅仅是进行逻辑 ...

  2. [转]Flash、Flex、AS3.0框架及类库资源收集之十全大补

    原文地址:http://www.d5power.com/portal.php?mod=view&aid=27 APIs.Libs.Components1.as3ebaylibhttp://co ...

  3. OpenCASCADE Expression Interpreter by Flex & Bison

    OpenCASCADE Expression Interpreter by Flex & Bison eryar@163.com Abstract. OpenCASCADE provide d ...

  4. Flex 布局教程:语法篇

    作者: 阮一峰 网页布局(layout)是CSS的一个重点应用. 布局的传统解决方案,基于盒状模型,依赖 display属性 + position属性 + float属性.它对于那些特殊布局非常不方便 ...

  5. Flex 布局教程:实例篇

    该教程整理自 阮一峰Flexible教程 今天介绍常见布局的Flex写法.你会看到,不管是什么布局,Flex往往都可以几行命令搞定. 我的主要参考资料是Landon Schropp的文章和Solved ...

  6. CSS布局之div交叉排布与底部对齐--flex实现

    最近在用wordpress写页面时,设计师给出了一种网页排布图样,之前从未遇到过,其在电脑上(分辨率大于768px)的效果图如下: 而在手机(分辨率小于等于768px)上要求这样排列: 我想到了两种方 ...

  7. Flexible 弹性盒子模型之flex

    实例 让所有弹性盒模型对象的子元素都有相同的长度,忽略它们内部的内容: #main div { flex:1; } 复制 效果预览 浏览器支持 表格中的数字表示支持该属性的第一个浏览器的版本号. 紧跟 ...

  8. 信息系统实践手记6-JS调用Flex的性能问题一例

    说明:信息系统实践手记系列是系笔者在平时研发中先后遇到的大小的问题,也许朴实和细微,但往往却是经常遇到的问题.笔者对其中比较典型的加以收集,描述,归纳和分享. 摘要:此文描述了笔者接触过的部分信息系统 ...

  9. flex自适应高度内容高度超出容器高度自动出现滚动条的问题

    在容器中设置 flex-grow:2; overflow-y:auto;overflow-x:hidden;容器高度自适应. 内容高度不固定,无法出现滚动条,然后在容器中添加height:0,出现滚动 ...

随机推荐

  1. Python装饰器实现几类验证功能做法(续)

    :昨天聊了一下构造.今天试了一下.感觉昨天聊的还是不够细化.今天结合代码实现,加以一点补充. 首先观察下面这个例子 from functools import wrapsdef decorator(f ...

  2. Struts2中的JSON问题——后台返回JSON字符串到前台

    最近做一个项目遇到一个比较棘手的问题,项目后台采用struts2+Hibernate3+Spring3,前台采用ExtJs4.笔者目前仍是一名大二学生吗,后台框架完全是毫无任何基础,从零学,现学现用. ...

  3. Java Regex match IP address

    Reference: [1] https://www.mkyong.com/regular-expressions/how-to-validate-ip-address-with-regular-ex ...

  4. 第 16 章 MySQL Cluster

    前言: MySQL Cluster 是一个基于 NDB Cluster 存储引擎的完整的分布式数据库系统.不仅仅具有高可用性,而且可以自动切分数据,冗余数据等高级功能.和 Oracle Real Cl ...

  5. struts2.1.6教程七、国际化

    尽管国际化不是重点内容,但是也有必要了解它的使用.在struts2中国际化有三种级别:分别是针对某个Action的action级别,针对package的package级别,针对webapp的webap ...

  6. Http学习之使用HttpURLConnection发送post和get请求(3)

    使用HttpURLConnection发送post和get请求 但我们常常会碰到这样一种情况: 通过HttpURLConnection来模拟模拟用户登录Web服务器,服务器使用cookie进行用户认证 ...

  7. hdu4081

    hdu4081 题意 给出n个点坐标,每个点有权值,要求得到一颗生成树,且其中有一条道路修建不需要花费,但是要求这条道路所连接的两点的权值之和除以剩下所有道路的距离花费最大. 分析 首先求最小生成树, ...

  8. 如何在vuejs中抽出公共代码

    当我们在使用vue构建中大型项目时,通常会遇到某些经常用的方法以及属性,比如说搭建一个员工管理系统,请求的url需要一个共同的前缀,或者在某几个view中需要用到时间,这个时间是通过某方法格式化之后的 ...

  9. linux-ubuntu下fastQC的安装

    1.fastqc是在Java环境下运行的:所以在安装fastqc之前,Linux下要有相应的Java运行环境(JRE).且java的版本应该在1.8.0版以上 2.java的安装:下载最新版本的Jav ...

  10. 【javascript】Promise/A+ 规范简单实现 异步流程控制思想

    ——基于es6:Promise/A+ 规范简单实现 异步流程控制思想  前言: nodejs强大的异步处理能力使得它在服务器端大放异彩,基于它的应用不断的增加,但是异步随之带来的嵌套.难以理解的代码让 ...