Flex Robotlegs
一.基于Robotlegs框架 flex应用基本组成
- ProjectNameContext.as
- 用于配置 Robotlegs 的映射
- ProjectName.mxml
- 应用的根视图 ,并且负责初始化 ProjectNameContext
- ProjectName-app.xml
- 应用的基础配置
- Controller
- Service
- Mediator
- 模块控制器
- View
- Model
- 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
- 编写接口
- 继承Actor
- 实现接口
- 注入所需类
- 编写相关方法
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
- 继承Actor
- 注入时,使用[Bindable]动态绑定
6.Event
- 继承event
- 添加所需的属性
- 重写构造器
- 注意事项:
service 转发事件 用 dispatch(event);
Mediator 用 eventDispatcher.dispatchEvent(event);
视图事件只能转发到Mediator
事件先派发到controller,再到达Mediator