这里是场景......我有一个应用程序有一个“打开”按钮。当你点击打开按钮时,一个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);
}
我也想知道,如果在事件出来发送的选择是做这也是最好的办法。任何洞察力将不胜感激。提前致谢。
这听起来像是一个更好的方式来处理它。为了好奇,如果我在关闭之前触发它,它会以连续的方式运行(所以事件在关闭窗口之前必须完全处理)? – Ocelot20 2011-02-28 21:06:37
我很确定事件侦听器是以“串行”方式运行的。因此,创建弹出窗口的组件中的事件侦听器将在PopUpManager remove类之前执行。 [我并不总是对的,所以你可能想整理一个快速样本来验证] – JeffryHouser 2011-02-28 23:51:34