27jan/084
Flex States: Modifier la propriété d'un composant
En utilisant le tag <mx:SetProperty>, vous pouvez modifier la valeur d'une propriété d'un composant existant dans cet état. Par exemple, vous pouvez modifier le texte d'un Label, basculer la propriété "enabled" d'un champ de saisie, changer les coordonnées X et Y d'un conteneur, ou même appliquer un filtre (un flou/blur par exemple). Le tag <mx:SetProperty> requiert 3 attributs:
- "target": référence vers l'objet auquel vous voulez appliquer la modification de propriété
- "name": nom de la propriété à modifier (enabled, x, text ...)
- "value": spécifie la valeur à appliquer à la propriété à modifier
L'exemple suivant utilise deux boutons pour basculer entre deux états qui activent/désactivent un champ de saisie:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="horizontal"
verticalAlign="middle"
viewSourceURL="srcview/index.html">
<mx:states>
<mx:State name="enabled">
<mx:SetProperty target="{textinput}" name="enabled" value="{true}"/>
</mx:State>
</mx:states>
<mx:HBox id="hbox">
<mx:Button id="enableButton" label="Activer" click="currentState='enabled'" />
<mx:Button id="disableButton" label="Désactiver" click="currentState=null" />
<mx:TextInput id="textinput" enabled="false" text="Texte de démo"/>
</mx:HBox>
</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 States: Modifier l'écouteur d'événement (Event Handler) d'un composant
- Flex States: Modifier le Style d'un Composant
- Flex 4 – Différences entre Flex 3 et Flex 4 (4-Nouvelle syntaxe des States)
- Flex Transition: Programmer des Transitions en ActionScript (Move, Resize…), avec exemple AS3
- Flex Transition: Créer des Transitions en MXML (Move, Resize…), avec exemple
Commentaires (4)
Trackbacks (0)
(Souscrire aux commentaires de cet article)
Aucun trackbacks pour l'instant






9 octobre 2008
bonjour,
j'ai un créé un composant qui contient un bouton, lors de l'event click sur le bouton un appel serveur s'effectue au retour de cet appel je souhaite que la fonction de retour modifie la currentState.
mais je ne parviens pas à modifier cet état.
je ne suis peut être pas au bon endroit pour ma question et je m'en excuse par avance si c'est le cas
9 octobre 2008
Salut,
comme c'est indiqué dans cet article:
http://www.flex-tutorial.fr/2008/01/27/flex-states-creation-et-application-etats-simples/
il te suffit de modifier la propriété currentState de ton composant. Donc en ActionScript dans ta fonction de retour d'appel serveur, tu peux faire currentState='nameDuNouveauState'.
Fabien
15 novembre 2011
(déterrement de post) Merci fnicollet mais ce n'est pas le problème, j'ai le même problème que aliong, son bouton se trouve dans un composant personnalisé et il veut modifier l'état du composant principal, si on le fait comme toi, cela génère cette erreur:
ArgumentError: Undefined state 'st_site'.
at mx.core::UIComponent/getState()[E:\dev\4.5.1\frameworks\projects\framework\src\mx\core\UIComponent.as:10596]
at mx.core::UIComponent/findCommonBaseState()[E:\dev\4.5.1\frameworks\projects\framework\src\mx\core\UIComponent.as:10616]
at mx.core::UIComponent/commitCurrentState()[E:\dev\4.5.1\frameworks\projects\framework\src\mx\core\UIComponent.as:10370]
at mx.core::UIComponent/setCurrentState()[E:\dev\4.5.1\frameworks\projects\framework\src\mx\core\UIComponent.as:10312]
at mx.core::UIComponent/set currentState()[E:\dev\4.5.1\frameworks\projects\framework\src\mx\core\UIComponent.as:6415]
at components::tw_login/__b_connexion_click()[C:\Users\XXXXXXXX\Dropbox\XXX\XXXXX\XXXXX\XXXXXXXX\Espace de travail\cabinet_de_massage\src\components\tw_login.mxml:24]
Si quelqu'un qui passerait par la aurais une idée, elle serait la bienvenue...
Merci!
15 novembre 2011
Salut,
as-tu déclaré l'état "st_site" dans ton composant cible? On dirait que non
Fab