一.基于Robotlegs框架 flex应用基本组成
1.ProjectNameContext.as
用于配置 Robotlegs 的映射
2.ProjectName.mxml
应用的根视图 ,并且负责初始化 ProjectNameContext
3.ProjectName-app.xml
应用的基础配置
4.Controller5.Service
6.Mediator
模块控制器
7.View8.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
①编写接口②继承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