Вам нужно следить за этим, когда вы добавляете всплывающие окна.Вот пример класса, который расширяет менеджер всплывающих окон:
package
{
import flash.display.DisplayObject;
import mx.collections.ArrayCollection;
import mx.core.IFlexDisplayObject;
import mx.core.IFlexModuleFactory;
import mx.core.UIComponent;
import mx.managers.PopUpManager;
public class PopManagerDepth extends PopUpManager
{
public function PopManagerDepth() { super(); }
public static var popUpsByDepth :ArrayCollection = new ArrayCollection();
public static function addPopUpWithDepth(window:IFlexDisplayObject,
parent:DisplayObject,
modal:Boolean = false,
childList:String = null,
moduleFactory:IFlexModuleFactory = null):void
{
PopUpManager.addPopUp(window, parent, modal, childList, moduleFactory);
PopManagerDepth.popUpsByDepth.addItem( window );
}
public static function removeLastPopUp():void{
PopManagerDepth.removePopUpByIndex(PopManagerDepth.popUpsByDepth.length);
}
public static function removePopUpByIndex( idx :uint ):void{
if( PopManagerDepth.popUpsByDepth.length > idx){
PopUpManager.removePopUp( popUpsByDepth.getItemAt( idx ) as IFlexDisplayObject );
}
}
}
}
Вы бы использовали этот класс для добавления всплывающих окон, как popupmanager, но с помощью этого метода:
PopManagerDepth.addPopUpWithDepth( .... );
Разница в том, что есть новый метод, который вы бы использовали, чтобы удалить их:
PopManagerDepth.removeLastPopUp();
или
PopManagerDepth.removePopUpByIndex();
Должен сделать трюк, извините, я не могу проверить это прямо сейчас, но должен работатьили близко к этому.Я помогу тебе отладить, если нужно:)