Dans les exemples précédents, on utilisait la méthode createPopUp() pour créer une nouvelle TitleWindow en PopUp. Si on appuyait encore sur le bouton, une nouvelle fenêtre s'affichait car on ne faisait pas dé vérification pour savoir si la fenêtre était déjà ouverte. Pour faire cette vérification, il y a une propriété appelée isPopUp, présente sur UIComponent donc sur tous les composants visuels. Cette valeur est de type Boolean. Elle est true si la fenêtre a été ouverte en tant que PopUp, et false sinon.
Voici un exemple d'utilisation où l'on vérifie si la fenêtre n'a pas été déjà ouverte. Si elle est déjà ouverte, on ne rentre pas dans le if et l'on ne fait rien:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" viewSourceURL="srcview/index.html">
<mx:Script>
<![CDATA[
import mx.events.CloseEvent;
import mx.managers.PopUpManager;
import mx.controls.TextArea;
import mx.containers.TitleWindow;
private var _window:TitleWindow;
private function showWindow(event:MouseEvent):void{
if (!_window || !_window.isPopUp){
var textArea:TextArea = new TextArea;
textArea.text = "Texte dans une TextArea qui va être ajouté à une PopUp utilisant TitleWindow";
textArea.height = 100;
_window = TitleWindow(PopUpManager.createPopUp(this, TitleWindow));
_window.addChild(textArea);
_window.showCloseButton = true;
_window.addEventListener(CloseEvent.CLOSE, closeHandler);
}
}
private function closeHandler(event:CloseEvent):void{
PopUpManager.removePopUp(_window);
}
]]>
</mx:Script>
<mx:Button label="Ouvrir une PopUp avec PopUpManager" click="showWindow(event)"/>
</mx:Application>
Flex Source Code Download: Télécharger le code source complet de l'application
This movie requires Flash Player 11