[color=red]Flex事件总线AppEvent [/color]
为了使程序各模块间达到高内聚低耦合,各模块间的事件传递一般采用事件总线方式,即将要传递的事件派发到事件总线进行广播,然后在需要接收事件的模块中进行监听,这样就能使模块结构更加清晰,从代码结构上看,也更加符合软件设计标准。
为了使程序各模块间达到高内聚低耦合,各模块间的事件传递一般采用事件总线方式,即将要传递的事件派发到事件总线进行广播,然后在需要接收事件的模块中进行监听,这样就能使模块结构更加清晰,从代码结构上看,也更加符合软件设计标准。
[
//第一个mxml中
var obj:Object={
message:"欢迎您, "+jsonobj.ROLENAME+","+jsonobj.USERNAME+"!"}
AppEvent.dispatch(AppEvent.SEND_MSG_TO_SHOWLOGININFO,obj);
//第二个mxml中
protected function basewidget1_creationCompleteHandler(event:FlexEvent):void
{
AppEvent.addListener(AppEvent.SEND_MSG_TO_SHOWLOGININFO,handler);
var login:SharedObject = SharedObject.getLocal("login","/");
// if(login.data.user != null&&login.data.user != ""){
// bcLoginMessage.visible = true;
// }else{
// bcLoginMessage.visible = false;
// }
if(!login.data.remember){
bcLoginMessage.visible = false;
lblMessage.visible = false;
login.clear();
}else{
bcLoginMessage.visible = false;
lblMessage.visible = false;
myServiceUser.checkUser(login.data.user,login.data.password);
}
}
//切换tab
protected function checkbox1_changeHandler(evt:Event):void
{
var chkbox:CheckBox=evt.currentTarget as CheckBox;
//Alert.show("id:"+chkbox.id);
switch(chkbox.id){
case "chkVideoCal":
chkbox.selected?AppEvent.dispatch("Start_CalVideo"):AppEvent.dispatch("End_CalVideo");
break;
case "chkVideo":
chkbox.selected?AppEvent.dispatch(AppEvent.WIDGET_RUN, 5):AppEvent.dispatch(AppEvent.WIDGET_CLOSE,5);
break;
//协同会商
case "chkXTHS":
chkbox.selected?AppEvent.dispatch(AppEvent.WIDGET_RUN, 1):AppEvent.dispatch(AppEvent.WIDGET_CLOSE,1);
break;
//热力图
case "chkReLiTu":
chkbox.selected?AppEvent.dispatch(AppEvent.WIDGET_RUN, 10):AppEvent.dispatch(AppEvent.WIDGET_CLOSE,10);
break;
}
var obj:Object={
label:chkbox.label,
status:chkbox.selected
};
ViewerContainer.dispatchEvent(new AppEvent("tabEvent",obj));
}