2009-09-24 11 views
0

Flex 3 question:Flex3: Comment remplacer la fonction étiquette de jeu d'un bouton

J'essaie ici pour éviter d'avoir à lier des ressources à toutes mes étiquettes de composants (par exemple un bouton) et trouver un moyen d'avoir cette automatisée.

Problème: Il corrompt la disposition en mode conception pour lier directement dans le label mxml = "{resourceManager.getString ('myResources', 'submit')}" et rend la vue de conception inutile. mais lors de la déclaration de liaisons ailleurs, dans ActionScript ou via une balise de liaison, il est contre-productif et sujet à de nombreuses erreurs et erreurs.

Proposition: Je voudrais créer mon propre bouton qui invoque automatiquement des ressources pour localiser une étiquette de bouton. Donc l'auteur met "Soumettre" dans la description mxml de mon bouton, et lors de son exécution il prendrait la valeur de l'étiquette "submit" et utiliserait resourceManager.getString ('myResources', 'submit').

mais je ne peux pas trouver le moyen de remplacer la fonction d'étiquette de jeu, Est-il possible si oui comment? D'autre comment puis-je m'y prendre? Peut-être qu'il me manque un processus essentiel qui rendrait l'utilisation des ressources plus élégante, ainsi que la façon de contourner une chose comme l'étiquette d'un bouton.

Merci pour vos conseils.

Répondre

2

Créez un composant appelé MyButton, en prolongeant Button. Ensuite, utilisez ceci:

override public function set label(value:String):void { 
    super.label = resourceManager.getString('myResources', value) || value; 
} 

En supposant que le rendement du gestionnaire de ressources « null » ou « non défini » cela fonctionnera, et ne remplacera la valeur si elle existe dans « MyResources ».

Si vous ne souhaitez pas remplacer tous les composants nécessaires, vous pouvez ajouter un événement FlexEvent.CREATION_COMPLETE à chaque composant. Utilisez ensuite une seule fonction générique pour effectuer la localisation de votre libellé.

+0

merci! Passez une bonne journée –