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. SQL Server中INNER JOIN与子查询IN的性能测试

    这个月碰到几个人问我关于"SQL SERVER中INNER JOIN 与 IN两种写法的性能孰优孰劣?"这个问题.其实这个概括起来就是SQL Server中INNER JOIN与子 ...

  2. Day2-文件操作

    文件操作流程: 1.打开文件,得到文件句柄并赋值给一个变量: 2.通过句柄对文件进行操作: 3.关闭文件 ################################33 1.打开文件方法: a. ...

  3. 利用EF ORM Mysql实体运行程序出错解决方案

    程序环境:VS2013 + mysql (server 5.7 + connector net 6.9.9 + for visual studio 1.2.6) + entity framework ...

  4. jenkins+ant+jmeter html报告文件作为附件发送(ant-jmeter支持javamail)

    前言:由于ant-jmeter目前的版本不支持javamail,也就是说发送邮件时只能借助jenkins自带的发送邮件插件来发送报告. 但是jenkins发送邮件支持发送邮件内容(且有价值.有营养的内 ...

  5. DDD领域驱动之干货(三)完结篇!

    首先这里发一下结构图,因为是重写的,但是代码都是一样所有如下: 这里我先说一下看了大部分的DDD文章都是采用的WCF做服务,这里呢我用的是webapi做服务,WCF和WEBAPI的区别可以去百度下. ...

  6. opencv基础到进阶(1)

    Opencv是一个用户基础非常多的视觉开发库,可以用来实现人脸识别等功能,由于涉及到大量的调用与计算,所以对硬件的条件要求很高,并且还需要时时刻刻注意内存溢出这个问题,怎么样?很刺激吧. 从这篇文章开 ...

  7. windows 配置 Scheme + Emacs 编程环境

    软件下载列表: Emacs Racket (这里使用 Racket ,更加方便,便于后面配置 Emacs) 配置 安装好 Emacs 后,在 C:\Users\用户名\AppData\Roaming\ ...

  8. 使用Eclipse进行Javaweb项目开发时,如何设置外置浏览器Chrome

    使用Eclipse开发Javaweb项目时,在Eclipse中显示页面不是很好,那么如何让它自动打开外置浏览器呢?操作如下

  9. Gradle入门学习---认识buildeTypes和dependencies

    Gradle是Android Studio默认的构建工具,如果是基本的APP开发,不会涉及到Gradle太多内容,毕竟它的诞生就不是专为Android服务的. 日常开发需要涉及到使用Gradle的场景 ...

  10. 16.3Sum Closet

    思路: 暴力,复杂度为 \(O(n^3)\),超时 class Solution { public: int threeSumClosest(vector<int>& nums, ...