Thanks for posting this example I have created a simple class that I'm using to handle my popup's. I have added stackWindows and closeAll . I hope this helps someone else.
To use
import PopManager;
PopManager.stackWindows(YourView); PopManager.closeAll(YourView); PopManager.openPopUpWindow(YourView,YourViewMediator,true);
package { import ApplicationFacade; import flash.display.Sprite; import flash.utils.getQualifiedClassName; import mx.core.Application; import mx.core.IFlexDisplayObject; import mx.managers.PopUpManager;
public class PopManager { public function PopManager() { } public static function stackWindows(ComponentClass:Class):void{ for (var i:int = Application.application.systemManager.numChildren - 1; i >= 0; i--) { if(getQualifiedClassName(Application.application.systemManager.getChildAt(i))==getQualifiedClassName(ComponentClass)){ var window:IFlexDisplayObject = Application.application.systemManager.getChildAt(i); window.x = i * 30; window.y = i * 30; } } } public static function closeAll(ComponentClass:Class):void{ for (var i:int = Application.application.systemManager.numChildren - 1; i >= 0; i--) { if(getQualifiedClassName(Application.application.systemManager.getChildAt(i)) == getQualifiedClassName(ComponentClass)){ Application.application.systemManager.removeChildAt(i); } } } public static function openPopUpWindow( ComponentClass:Class, MediatorClass:Class, modal:Boolean):void { var window:IFlexDisplayObject = PopUpManager.createPopUp( Application.application as Sprite, ComponentClass, modal ); ApplicationFacade.getInstance().registerMediator( new MediatorClass( window ) ); PopUpManager.centerPopUp( window ); } public static function closePopUpWindow( window:IFlexDisplayObject, mediatorName:String ):void { PopUpManager.removePopUp( window ); ApplicationFacade.getInstance().removeMediator( mediatorName ); } } }
|