PureMvc(Flex)中如何响应Popup里面的Event
我用PopupManager显示的一个新创建的弹出式窗口var popWin:MyPopupWindow = MyPopupWindow.new()里面要dispatchEvent一个事件,目的是从服务器端取得所需数据。问题来了,dispatchEvent一个事件,没有Mediator可以'听'到,想用PureMvc的方式为PopupWindow单独注册Mediator也不行(相当别扭)。这下清楚了,原来所有UIComponent的Parent是Application,而所有Popup的Parent是Application的上级SystemManager。也就是说,你在UICompent上addEventListener是不行的,必须要在SystemManager上addEventListener,还好,每个UICompent都有一个指向SystemManager的属性。错误代码:userUIComponent.addEventListener(PopupWindow.USER_EVENT, doSomething)正确代码:userUIComponent.systemManager.addEventListener(PopupWindow.USER_EVENT, doSomething)这样就可以在Mediator中响应Popup里面的事件了,注意:userUIComponent是任意一个ViewComponent, 因为不管那个ViewComponent的systemManager都是指向同一个SystemManager。还是要通过SystemManager中转: