【发布时间】:2009-05-23 02:46:05
【问题描述】:
我已经使用 Winforms 和 WPF 完成了很多 C# 编程。我现在正在开发一个 Flex/Air 应用程序以获得跨平台支持。但这是我的第一个 flex 项目,所以我边走边学。
我有一个要弹出的窗口,用户将填写表格,然后点击确定或取消。我以与 C# 中相同的方式设置它,但它不起作用,而且我真的找不到让它做我想做的事情的方法。
编辑: 所以我现在正在尝试事件,事件似乎没有被处理......
再次编辑: 哦,这是因为弹出管理器似乎创建了一个新的 Form 对象实例,而不是使用我已经创建的那个。
所以在 showWindow 方法中,我输入了这段代码而不是弹出管理器:
parent.addChild(this);
然后我在关闭它时将其删除。唯一的问题是,它不会像弹出管理器那样禁用父级的其余部分。对此有何建议?
家长:
private function btnAdd_Clicked():void
{
var form:Form = new Form();
form.addEventListener(CloseEvent.CLOSE, onFormClosed, false, 0, true);
recipeForm.showWindow(this);
}
private function onFormClosed(e:CloseEvent):void
{
//none of these Alerts are ever shown. I also tried breakpoints in debug to try an follow the code, with no luck
Alert.show("Closed");
if(e.detail == Alert.OK)
{
Alert.show("OK");
}
else if(e.detail == Alert.CANCEL)
{
Alert.show("Cancel");
}
}
孩子:
private function btnCancel_Clicked():void
{
okClicked = false;
closeWindow();
}
public function closeWindow():void
{
var e:CloseEvent = new CloseEvent(CloseEvent.CLOSE);
e.detail = okClicked ? Alert.OK : Alert.CANCEL;
dispatchEvent(e);
PopUpManager.removePopUp(this);
}
public function showWindow(parent:WindowedApplication):void
{
var window:IFlexDisplayObject = PopUpManager.createPopUp(parent, RecipeForm, true);
PopUpManager.centerPopUp(window);
}
【问题讨论】:
标签: apache-flex air popup