近日在做个原型的是否发现一个以前一只没有注意到的问题,当我在AS类中动态的添加一个用MXML写的组件的时候,该组件内的其他组件(按钮啊什么的)虽然可以获取到ID,但是通过调试发现对象的引用是空的(在组件里通过AS世界实例化的对象是正常的),也就是说FLEX只是定义了那些子组件并没有去实例化他们,当我将组件添加到页面显示后组件内的子组件全部被实例化。
例如:
在点击按钮弹出一个页面,但是在页面加载到弹出页面之前我就派发了通知注册该组件Mediator类并在该类中注册该组件中的一个按钮的监听,此时系统报错“引用为空”,等将对象添加到显示页面后在派发通知问题解决。
//新增业务操作
private function addBusiOper(evt:MouseEvent):void{
addOper = new AddBusiOper();
//sendNotification(WholeResMediator.POP_UP_ADD_BUSI_OPER,addO//per);
titleWindow = new TitleWindow();
titleWindow.title = "新增业务操作";
titleWindow.showCloseButton = true;
titleWindow.addEventListener(CloseEvent.CLOSE, titleWindow_close);
titleWindow.addChild(addOper);
PopUpManager.addPopUp(titleWindow, busiOperate, true);
PopUpManager.centerPopUp(titleWindow);
sendNotification(WholeResMediator.POP_UP_ADD_BUSI_OPER,addOper);
}