Actionscript 3 关闭Flex中没有对象的警报框

Actionscript 3 关闭Flex中没有对象的警报框,actionscript-3,apache-flex,actionscript,flex4,flex3,Actionscript 3,Apache Flex,Actionscript,Flex4,Flex3,我有一个由两个状态(state1和state2)组成的应用程序。首先是state1弹出窗口,然后是state2弹出窗口。在状态2上,有许多操作显示警报。 现在,如果我单击“注销”,State2窗口关闭,state1弹出,但alert仍然弹出,现在我没有要使用PopUpmanger.removepopup()删除的alert对象。另一种解决方法是,如果alert打开,将所有alert推入数组,如果alert关闭,则可以弹出它。若注销时警报打开,则可以获取警报对象,然后可以使用PopUpManage

我有一个由两个状态(state1和state2)组成的应用程序。首先是state1弹出窗口,然后是state2弹出窗口。在状态2上,有许多操作显示警报。
现在,如果我单击“注销”,State2窗口关闭,state1弹出,但alert仍然弹出,现在我没有要使用PopUpmanger.removepopup()删除的alert对象。

另一种解决方法是,如果alert打开,将所有alert推入数组,如果alert关闭,则可以弹出它。若注销时警报打开,则可以获取警报对象,然后可以使用PopUpManager.removePopUp()for循环删除警报

//Global array for your application// 
private var tempArray:Array = new Array();

//When you open first alert
var alert1:Alert = Alert.show("First Alert", "Alert");
tempArray.push(alert1);

//When you open second alert
var alert2:Alert = Alert.show("SecondAlert", "Alert");
tempArray.push(alert2);
//像这样的东西。。。。未经测试

for(var i:int=tempArray.length-1;0< i;i--){
PopUpManager.removePopUp(tempArray[i]);
tempArray.pop();
}

或查看以下链接:-

http://www.devahead.com/blog/2009/12/getting-all-the-popups-in-a-flex-application/

另一种解决方法是,如果警报打开,将所有警报推入阵列,如果警报关闭,则可以将其弹出。若注销时警报打开,则可以获取警报对象,然后可以使用PopUpManager.removePopUp()for循环删除警报

//Global array for your application// 
private var tempArray:Array = new Array();

//When you open first alert
var alert1:Alert = Alert.show("First Alert", "Alert");
tempArray.push(alert1);

//When you open second alert
var alert2:Alert = Alert.show("SecondAlert", "Alert");
tempArray.push(alert2);
//像这样的东西。。。。未经测试

for(var i:int=tempArray.length-1;0< i;i--){
PopUpManager.removePopUp(tempArray[i]);
tempArray.pop();
}

或查看以下链接:-

http://www.devahead.com/blog/2009/12/getting-all-the-popups-in-a-flex-application/

这些
Alert
调用是操作所必需的,还是用于提供信息/进行调试?如果是后者,您最好将其从发布版本中删除。此外,理想情况下,任何此类弹出窗口都应该在您退出
state2
时以及在您恢复到
state1
之前处理。下面的代码可能会对您有所帮助:(var i:int=0;isystemManager.popUpChildren.numChildren即使在systemManager.RawChildren中的alert对象所在位置有alert,也会返回0个警报这些
alert
调用是操作所需的还是用于信息/调试?如果后者是理想情况,则应将其从发布版本中删除。此外,还应考虑任何此类弹出窗口在您退出
state2
时,以及在您恢复到
state1
之前,您可能需要处理这些问题。下面的代码可能会对您有所帮助:--//for(var i:int=0;isystemManager.popUpChildren.numChildren返回0偶数警报,如果警报在systemManager.RawChildren应用程序中的何处可以找到警报对象,则返回0偶数警报。在应用程序中,大约有1000个警报,因此无法考虑如何执行