13jan/096
Flex PopUp – Contrôler le style d'une PopUp modale
Par défaut, quand vous ouvrez une fenêtre popUp de type Alert dans Flex grâce à la méthode show(), l'application se recouvre d'une sorte de voile gris qui empêche l'utilisateur d'utiliser l'application. Voici l'apparence d'une fenêtre modale par défaut:
Ce type de fenêtre avec un voile derrière est appelé fenêtre modale.
Vous pouvez bien sur modifier certains paramètres pour changer l'apparence de ce voile modal. Il existe 4 paramètres que vous pouvez modifier:
- modalTransparency:Number. Valeur par défaut 0.5. Définit l'opacité du voile appliqué. Une valeur de 0 rend le voile complètement transparent. Une valeur de 1 le rend totalement opaque.
- modalTransparencyBlur:Number. Valeur par défaut 3. Définit le flou (blur) appliqué au reste de l'application Flex.
- modalTransparencyColor:uint .Valeur par défaut 0xDDDDDD. Définit la couleur du voile.
- modalTransparencyDuration:Number. Valeur par défaut 100. Définit en millisecondes, le temps que met l'effet de transparence à se jouer (ouverture et fermeture).
Voici une application Flex que je viens de faire dans laquelle vous pouvez modifier ces paramètres et voir le résultat directement:
<?xml version="1.0"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="creationCompleteHandler(event)" viewSourceURL="srcview/index.html">
<mx:Script>
<![CDATA[
import mx.events.CloseEvent;
import mx.controls.Alert;
private var alertCSS:CSSStyleDeclaration;
private function creationCompleteHandler(event:Event):void{
alertCSS = StyleManager.getStyleDeclaration("Alert");
Alert.yesLabel = "Oui";
Alert.noLabel = "Non";
}
private function clickHandlerSave(event:Event):void {
alertCSS.setStyle("modalTransparencyColor", modalColor.selectedColor);
alertCSS.setStyle("modalTransparency", transpSlider.value);
alertCSS.setStyle("modalTransparencyBlur", blurSlider.value);
alertCSS.setStyle("modalTransparencyDuration", durationSlider.value);
var flags:uint = Alert.YES | Alert.NO;
Alert.show("Voulez-vous sauvegarder", "Sauver...", flags, this, closeHandler);
}
private function closeHandler(event:CloseEvent):void{
alertCSS.setStyle("modalTransparencyColor", 0xDDDDDD);
alertCSS.setStyle("modalTransparency", 0.5);
alertCSS.setStyle("modalTransparencyBlur", 3);
alertCSS.setStyle("modalTransparencyDuration", 100);
}
]]>
</mx:Script>
<mx:Panel width="400" height="300" title="Modification Alert Modal"
paddingLeft="30" paddingTop="30" paddingRight="30">
<mx:Label text="modalTransparency"/>
<mx:HSlider id="transpSlider" minimum="0" maximum="1" value=".5" snapInterval=".1" width="100%"/>
<mx:Label text="modalTransparencyBlur"/>
<mx:HSlider id="blurSlider" minimum="0" maximum="5" value="3" snapInterval="1" width="100%"/>
<mx:Label text="modalTransparencyColor"/>
<mx:ColorPicker id="modalColor" selectedColor="0xDDDDDD"/>
<mx:Label text="modalTransparencyDuration"/>
<mx:HSlider id="durationSlider" minimum="0" maximum="2000" value="100" snapInterval="100" width="100%"/>
<mx:Button label="Afficher une Alert" click="clickHandlerSave(event);"/>
</mx:Panel>
</mx:Application>
Flex Source Code Download: Télécharger le code source complet de l'application
This movie requires Flash Player 11
Articles similaires
- Flex PopUp – Créer une fenêtre Alert non modale
- Flex PopUp – Ajouter une icône dans la barre de titre d'une Alert
- Flex PopUp – Utiliser des icônes dans une Alert Flex
- Exemple de Flex Alert simple
- Flex PopUp – Ouvrir une PopUp avec la classe Alert
Commentaires (6)
Trackbacks (0)
(Souscrire aux commentaires de cet article)
Aucun trackbacks pour l'instant







4 mars 2009
Salut,
Les Alert étaient quand même bien pratiques dans FLASH et ont malheureusement dispraues en CS4 + AS3.
Si des gens sont tombés sur cet article en tapant AS3 + Alert, mais qu'ils cherchent une solution pour Flash, j'ai trouvé ces ressources :
http://developer.yahoo.com/flash/astra-flash/
Voilou
merci pour ton article en tout cas, et félicitations pour ton prix Orange
++
14 avril 2010
Est-ce qu'il est possible de rendre la fenêtre modale non transparente ?
14 avril 2010
Salut Eric,
Je pense que la propriété modalTransparency fait ce qui tu souhaites. Essaies là sur l'exemple plus haut.
Fabien
24 septembre 2010
Merci pour ces infos, comme toujours bien pratique ce blog
24 février 2011
Bonjour,
Tout d'abord un grans merci pour votre site ainsi que votre participation à l'écriture de "Programmation Flex 4".
Je souhaite mettre en place des alertes dans mon application AIR mais cela ne fonctionne pas.
Mon application AIR est transparente avec une barre de menu.
Cette barre de menu possède entre autre le menu Quitter.
Je souhaiter mettre en place une alerte lorsque l'utilisateur clic sur ce menu.
Or sachant que parfois, je n'ai aucune fenêtre d'affiché à l'écran, mon alerte ne s'affiche pas: le parent est null.
Auriez-vous cher Maitre du Flex un idée pour contourner cela.
Merci par avance de votre aide.
24 février 2011
Salut et merci pour le commentaire
.
Tu pourrais donner le code d'ouverture de la pop-up? Sur quel composant est basé ta pop-up?
Fabien