Il y a quatre type de boutons basiques: Button, LinkButton, RadioButton et CheckBox. Bien que chaque type se comporte de la même manière, chacun a son utilité.
This movie requires Flash Player 11
Les plus similaires dans leur fonctionnement sont Button et LinkButton. En fait, la vraie différence est purement esthétique: les Button ont des bordures/fonds alors que les LinkButton n'en ont pas. Cependant, vous allez typiquement utiliser ces deux types pour la même utilisation.
Avec Button et LinkButton, le comportement par défaut est de répondre à chaque click de la même manière. Cependant, vous pouvez fixer leur propriété "toggle" à true et dans ce cas, le bouton aura deux état: sélectionné et desélectionné. Le click de l'utilisateur servira à basculer entre ces états.
Les RadioButton sont assez différent dans leur usage. Les RadioButtons sont souvent utilisé en groupes. Ils peuvent être sélectionnés ou desélectionnés, et seul un peut être sélectionné par groupe. Ainsi, vous allez d'abord créer une instance de RadioButtonGroup quand vous utilisez les RadioButton. Ensuite, vous assignez l'ID du groupe à la propriété "groupName" de chaque bouton radio appartenant au groupe, comme ceci:
<mx:RadioButtonGroup id="exampleGroup"/>
<mx:RadioButton groupName="exampleGroup" label="A" value="a"/>
<mx:RadioButton groupName="exampleGroup" label="B" value="b"/>
Les CheckBox sont aussi des boutons. Ils sont assez similaires aux boutons mis en "toggle". Quand un utilisateur clique une CheckBox, il bascule l'état selected du composant.
3 août 2009
Bonjour, déjà merci pour ce site, il est vraiment très bien fait.
Par contre j'ai un petit problème avec les boutons.
Voila ma question :
Quand on crée un bouton, avec un label même dynamiquement si l'on ne précise pas les propriétés height et width on a un bouton avec des dimensions pouvant contenir le label.
Par contre au moment où on essaye de récupérer par exemple le width, le getter nous retourne 0, j'ai essayé de lire la classe button du framework mais rien trouvé autre qu'une fonction measure que je n'arrive pas à réutiliser.
Quelqu'un saurez quel est la procédure à faire pour récupérer les dimensions du bouton.
Merci beaucoup.
3 août 2009
Merci
La width est toujours récupérable, il faut cependant attendre que le composant soit bien initialisé. Ainsi, si vous faites <mx:Button id="btn" label="{btn.width}" creationComplete="trace ('width: ' + btn.width);"/>, vous aurez la bonne valeur de width affichée dans la console.
Fabien
3 septembre 2009
il n'y a donc pas possibilité d'obliger le calcul avant de l'ajouter, si on veut connaitre la taille d'un bouton sans l'afficher on doit donc l'ajouter et le supprimer dès qu'il est initialisé? c'est ce que j'ai fais en tout cas et ça marche mais bon... pas très propre.
Merci beaucoup Fabien
21 septembre 2009
Sam,
je suis presque certain que l'on peut faire plus propre ; je crois avoir déjà eu ce problème et l'avoir résolu.
Le principe
on connait la police utilisée pour le label
avant de creer le bouton,
on crée une chaine, contenant le label
on récupère sa largeur
on tient aussi compte des paddings left et right
on peut donc prévoir la largeur du bouton
d'autre part, pour ces préoccupations de tailles, il est souvent utile de bien distinguer width, percentWidth et explicitWidth
--- j'ai retrouvé le code (il y a deux paramètres légendes parce que ce sont des boutons différents, mais que j'affiche toujours par paire)
voilà, c'est tout pour ce soir
j'espère que depuis le 3 sept le prob est toujours d'actualité
9 février 2010
Bonjour
Merci pour tout ces précieuses informations
Votre site est bien pratique, claire et bien fait.
Je suis nouveau dans la compréhension de Flex!
J’utilise un formulaire pour entrer directement dans un salon de tchat
Voici le code:
A présent voici ma question
Je réalise un module simple en accordéon j’avance petit à petit à mon rythme
Mais comment faire pour que mon formulaire soit fonctionnel en mxml?
Bien amicalement
VatMx
9 février 2010
Formulaire fonctionnel en MXML ? comment ça ?
Je pense que tu auras la réponse à ta question en la posant sur un forum flex. (pas très pratique ici)
Merci
Fabien