2009-11-10 7 views
0

J'ai créé un conteneur Form avec quelques champs TextInput dans Flex et je souhaite modifier un style d'élément TextInput cliqué. J'ai réussi à le faire avec l'écouteur d'événement MouseEvent.CLICK mais ce n'est pas ce à quoi je m'attendais.
Je voudrais changer le style de TextInput lorsque l'utilisateur essaie de modifier ce champ. Cependant, je souhaite revenir au style par défaut lorsque l'utilisateur clique sur un autre champ TextInput ou en dehors de tout champ. Y a-t-il un écouteur d'événement spécifique à de telles interactions?Gestion de la largeur et des styles de TextInput dans Flex

J'ai aussi une question, est-il possible de faire de la largeur de TextInput en fonction de la quantité de texte? Je veux redimensionner à la largeur du texte à l'intérieur de celui-ci? Le texte provient d'une base de données et est toujours différentes largeurs ...

Merci pour votre aide!

Répondre

2

Au lieu d'utiliser les événements de clic, utilisez les événements "focus" et "flou". De cette façon, vous remarquerez l'événement au fur et à mesure que l'utilisateur clique sur le champ (ou les onglets), et vous remarquerez également l'événement lorsqu'il quitte le champ.

+0

Merci! J'ai résolu le problème avec les écouteurs FocusEvent.FOCUS_IN et FocusEvent.FOCUS_OUT ... – errata

1

Quant à votre deuxième question. Si vous ne définissez pas une largeur explicite sur l'entrée de texte, je pense qu'il utiliserait flash.text.TextLineMetrics pour calculer automatiquement sa largeur optimale. Vérifiez la méthode measure dans le code pour le TextInput pour vérifier.

+0

Merci pour l'aide ... J'ai essayé quelques méthodes et propriétés de mesure, mais aucune ne fonctionne = (Quand j'essaie d'utiliser measureText() sur mon champ TextInput, j'obtiens cette erreur: TypeError: Erreur # 2007: Le paramètre antiAliasType doit être non null.En outre, je vois dans le débogueur que measureWidth renvoie 0 ... Hmmm, pourquoi est-ce que cela se produit? – errata

+0

Je ne veux pas dire appel la méthode 'measure()', je veux dire regarder le code pour voir ce que le contrôle fait si vous ne définissez pas un 'explicitWidth' –

+0

hmm, je ne suis pas sûr si je vous ai bien compris, mais j'ai aussi vérifié explicitWidth et sa valeur est NaN, tout comme tous les autres Largeurs/Hauteurs de explicitMin/explicitMax ... – errata