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. AsyncTask和Handler

    AsyncTask实现的原理和适用的优缺点 AsyncTask,是android提供的轻量级的异步类,可以直接继承AsyncTask,在类中实现异步操作,并提供接口反馈当前异步执行的程度(可以通过接口 ...

  2. SVN分支/合并原理及最佳实践

    转自:http://blog.csdn.net/e3002/article/details/21469437 使用svn几年了,一直对分支和合并敬而远之,一来是因为分支的管理不该我操心,二来即使涉及到 ...

  3. javaWeb学习总结(9)- JSTL标签库之核心标签

    一.JSTL标签库介绍 JSTL标签库的使用是为弥补html标签的不足,规范自定义标签的使用而诞生的.使用JSLT标签的目的就是不希望在jsp页面中出现java逻辑代码 二.JSTL标签库的分类 核心 ...

  4. 初码-Azure系列-如何在控制面板中选择中文版操作系统

    之前在文章<初码-Azure系列-记一次从阿里云到Azure的迁移和部署>中说到,默认的Windows Server 2016操作系统是英文版,后来摸索出中文版的方法,如下:

  5. 浅谈java发射机制

    目录 什么是反射 初探 初始化 类 构造函数 属性 方法 总结 思考 什么是反射 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意 ...

  6. Java经典编程题50道之三十六

    有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数. public class Example36 {    public static void main(String[] a ...

  7. Web前端的路该怎么走?很迷茫

    “路漫漫其修远兮,吾将上下而求索”,这句出自<离骚>. 虽然端午已过,但是还是不影响一个程序员想表(zhuang)达(boy)自己此刻心情的冲动. 偶然路过同事旁边,不(tou)小(kan ...

  8. openvpn实现内网 映射到 外网

    openvpn实现内网 映射到 外网 场景介绍: 机器介绍 本地一台Ubuntu服务器A , 处于内网中 , 无外网IP 外网一台Ubuntu服务器B , 外网地址139.199.4.205 目标 : ...

  9. SurfaceView的基本使用

    一.引入: Android提供了View来进行绘图处理,在大部分情况下,View都能满足绘图需求.大家都知道View是通过刷新来重绘视图,Android系统通过发出VSYNC信号来进行屏幕的重绘,刷新 ...

  10. backbone中get和fetch的区别

    我也是刚开始接触backbone.js对于里面的很多东西都看过,但是具体在使用起来还是有很多问题,其中一个就是get和fetch的区别,这个让我很纠结,都是获取模型的数据,干嘛要有两个呢?最近好像弄明 ...