这是场景......我有一个具有“打开”按钮的应用程序。当您单击打开按钮时,TitleWindow会弹出(通过PopUpManager)一个允许您选择记录的对话框。在该窗口中,您可以在选择记录后单击“确定”,或取消应该关闭窗口的对话框。
处理此问题的最佳方法是什么,知道我需要将记录号返回给主应用程序?现在我有主应用程序打开自定义TitleWindow。在TitleWindow中,当用户单击“确定”并选择了一条记录时,我会触发一个事件。这就是主应用程序监听recordId的方式。我想知道的是,如果我可以做这样的事情:
private function RecordSelected():void
{
this.selectedRecord = someControl.selectedIndex;
this.dispatchEvent(new Event("RecordSelected"));
PopUpManager.removePopup(this);
}
TitleWindow的实例是否会在主应用程序处理事件之后保持活动状态,还是可以在主应用程序完全处理事件之前删除(因此以空引用异常结束)?
或者,最好是在事件处理程序中关闭窗口,如下所示:
private function titleWindow_RecordSelected(event:Event)
{
var openDialog:CustomTitleWindow = CustomTitleWindow(e.currentTarget);
this._selectedRecord = openDialog.selectedRecord;
PopUpManager.removePopup(openDialog);
}
我也想知道在事件中发送选择是否也是最好的方法。任何见解将不胜感激。提前谢谢。
答案 0 :(得分:1)
处理此问题的最佳方法是什么, 知道我需要退回记录 编号到主要应用程序?
最好总是主观的,但我通常会在窗口组件中处理关闭窗口;然后将具有适当数据的事件(在本例中为Record No)发送回应用程序。这听起来像是你的90%。只是不是调度事件事件,而是使用您的recordID创建自定义Event类。然后,当您需要使用记录ID时,弹出窗口是否仍然在内存中无关紧要。