2010-04-22 11 views
1

Dans Flex 4, est-il possible de modifier des composants qui ne sont pas inclus dans l'état actuel? Par exemple, j'ai labelA inclus dans stateA, comment puis-je changer le texte de l'étiquette dans l'étatB? Si je change directement le texte d'étiquette dans l'étatB, j'obtiendrai un message d'erreur de référence null. Une solution de contournement consiste à inclure labelA dans tous les états et à le rendre invisible dans les états autres que stateA. Cependant, si le nombre de ce type de composant devient trop important, le travail devient fastidieux et je ne pense pas qu'il soit raisonnable d'inclure des composants d'interface utilisateur inutiles dans des états sans rapport. Y a-t-il une meilleure solution pour cette situation? Merci!Modifier les composants qui ne sont pas inclus dans l'état actuel?

Cordialement


Merci pour la réponse. Donc, si ce cas est commun, je pense qu'il y aura beaucoup de déclarations de variables pouvant être liées à mes codes, comme

[Bindable] 
private var a:String; 
[Bindable] 
private var b:String; 
[Bindable] 
private var c:String; 

et ainsi de suite. Ai-je raison? Merci encore! :)

Répondre

0

Ne modifiez pas le texte d'une étiquette vous-même. Au lieu de cela, vous pouvez créer une variable (une chaîne) qui va contenir le texte, lier la valeur du texte des étiquettes à cette variable, et que seulement changer la valeur de la variable. Quelque chose de semblable à ceci:

<fx:Script> 
    <![CDATA[   
     [Bindable] 
     private var yourLabelText:String = 'this is the text'; 
    ]]> 
</fx:Script> 
<s:Label text="{yourLabelText}" />