Flex PopUp – Centrer une fenêtre PopUp avec la méthode centerPopUp
Jusqu'à présent, tous les exemples que j'ai publié montre des PopUp qui s'ouvrent dans le coin haut gauche de l'application. La plupart du temps, ce n'est pas comme cela que vous voudrez afficher votre PopUp. La classe mx.managers.PopUpManager par laquelle vous créez les popup avec la méthode createPopUp() contient aussi une autre méthode static: centerPopUp().
Elle prend un seul paramètre, la référence vers le PopUp à centrer. PopUpManager fera ensuite le calcul de position suivant le conteneur parent du popup pour déterminer les nouveaux x et y.
Voici un exemple simple:
<?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{
var isCentered:Boolean = center.selected;
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);
if (isCentered){
PopUpManager.centerPopUp(_window);
}
}
private function closeHandler(event:CloseEvent):void{
PopUpManager.removePopUp(_window);
}
]]>
</mx:Script>
<mx:CheckBox id="center" selected="true" label="Centrer ?"/>
<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
Attention, lorsque l'application est redimensionnée, la PopUp ne restera pas centrée. Pour cela, il faut ajouter un eventListener sur l'évènement resize du stage et lorsque cet évènement se produit, vous appelez PopUpManager.centerPopUp().
Articles similaires
- Flex PopUp – Savoir si une PopUp est déjà ouvert avec la propriété isPopUp
- Flex PopUp – Supprimer une fenêtre PopUp créée avec le PopUpManager
- Flex PopUp – Créer une fenêtre Personnalisée modale avec le PopUpManager
- Flex PopUp – Créer une PopUp à partir d'un composant MXML ou ActionScript
- Flex PopUp – Créer une fenêtre PopUp avec le PopUpManager
Aucun trackbacks pour l'instant






18 janvier 2009
Ton site est vraiment très bien pour un débutant comme moi.
Ceci étant dit, pourrais-tu nous montrer comment tu fais pour ajouter un eventListener sur l'évènement resize du stage afin d'appelez PopUpManager.centerPopUp().
D'avance merci.
19 janvier 2009
Salut,
Dans le tag mx:Application, rajoute
et dans le bloc mx:script, tu as juste à rajouter le handler:
Fabien
22 juillet 2009
Et si on veut centrer un élément en mxml et pas en ActionScript ?
22 juillet 2009
Ce n'est pas possible, il faut toujours accéder au PopUpManager pour centrer une popup. Il n'est pas possible d'ouvrir une popup vraiment en MXML de toutes manières, il faut passer par de l'AS.
Fabien