如果我们在浏览(网页)或AIR应用程序中打开大量弹出窗口,请立即删除它们?
答案 0 :(得分:2)
我认为没有真正要求用弹出式管理器删除所有弹出窗口。我认为您需要在列表中保留对每个实例的引用,并为每个实例调用PopUpManager.removePopUp。老实说虽然拥有大量弹出窗口(就用户体验而言)可能不是一个好主意,但可能会有一些情况,但我肯定会花一些时间来考虑它是否真的是最佳选择。
编辑:
您还可以考虑扩展PopUpManager并维护内部集合,看起来PopUpManager使用PopUpManagerImpl并且似乎没有公开它用于委派实际工作的impl属性,因此您可能需要扩展它们。但是你可以使用PopUpManagerImpl.mx_internal :: popupInfo,它是一个数组,其对象具有一个名为owner的属性,看起来它就像你想要提供给removePopUp的调用一样。
答案 1 :(得分:1)
在创建数组时添加数组中的所有弹出窗口。并删除所有弹出窗口
var popupCollection:ArrayCollection = new ArrayCollection;
var mypopup:IFlexDisplayObject;
PopUpManager.centerPopUp(mypopup=PopUpManager.createPopUp(this,popupWindow));
popupCollection.addItem(mypopup);
你可以使用循环
删除所有弹出窗口PopUpManager.removePopUp(popupCollection[index] as IFlexDisplayObject);