Flex Robotlegs

时间:2023-03-09 01:30:32
Flex  Robotlegs

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