2011-12-07 17 views
3

ボタンをクリックすると、varから値を取得するラベルがあります。 varがすでに宣言されています:フレックス:変数であるラベルのテキストを更新する

public function clickevent 
{ 
label.text = aVariable; 
} 

今、私は私はこのようなラベルを持っている場合ことを知っている:

<s:Label id="label2" text="{aVariable}"/> 

とaVariableが空で、LABEL2のテキストは、(それがエラーを与えないヌルです、私の状況ではちょうど "ヌル")。これは私の現在の状況です。

私が知りたいのは、あとでaVariableの値を文字列 "hasChanged"に変更するときです。 label2のテキストも、ユーザがボタンや何かを押してこの変更を行う必要なしに、「hasChanged」に変更する必要があります。これはどうすればできますか?

+1

おそらく、この回答は正しい方向にあなたを助けることができます:http://stackoverflow.com/questions/306896/as3-can-i-detect-change-of-value-of-a-variable-using-addeventlistener –

答えて

4

私はあなたの質問を理解していますが、あなたの変数が「バインド可能」と宣言されていても、スクリプトがその値またはボタンを変更しても、ラベルのテキスト特性はバインド。

<?xml version="1.0" encoding="utf-8"?> 
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" 
    xmlns:s="library://ns.adobe.com/flex/spark" 
    xmlns:mx="library://ns.adobe.com/flex/mx"> 

    <fx:Script> 
     <![CDATA[ 
      [Bindable] 
      private var aVariable:String; 

      protected function button1_clickHandler(event:MouseEvent):void 
      { 
       aVariable = "My new value"; 
      } 
     ]]> 
    </fx:Script> 

    <s:layout> 
     <s:VerticalLayout/> 
    </s:layout> 

    <s:Label text="{aVariable}"/> 

    <s:Button label="Click me" click="button1_clickHandler(event)"/> 

</s:WindowedApplication> 
+0

さて、それは働いた。面白いことに、私はしばしば他の理由でvarsをバインドしますが、この問題も修正されているのか分かりませんでした。しかし、私は別のvarで同じ問題を抱えていますが、もう少し複雑です。すぐに私の2番目の部分を追加します。 - –

+0

私は物事を整理しておくために、より高度な質問を投稿しました:http://stackoverflow.com/questions/8423226/update-a-var-which-gets-it-its-value-from-another-component –

1

のように、[バインド可能]タグを使用して変数を宣言:変数aVariableの値が変更されるたびに

[Bindable] private var aVariable:String; 

、それがラベルに反映されます。

+0

さて、それは働いた。面白いことに、私はしばしばvarsやその他の理由をバインドしますが、この問題も修正されているのか分かりませんでした。しかし、私は別のvarで同じ問題を抱えていますが、もう少し複雑です。すぐに私の2番目の部分を追加します。 –

+0

私は物事を整理しておくために、より高度な質問を投稿しました:http://stackoverflow.com/questions/8423226/update-a-var-which-gets-it-its-value-from-another-component –

2

また、宣言ブロック内のすべての変数を宣言すると、デフォルトではそれがバインド可能になりことに注目すべきであってもよい:

<fx:Declarations> 
    <fx:String id="aVariable" /> 
</fx:Declarations> 

<s:Label text="{aVariable}" /> 

<s:Button label="Click Me" click="aVariable='Clicked!'" /> 

これは、スクリプトブロックで宣言するだけの代替手段です。

+0

ニースチップ、ありがとう。 –

+0

私は物事を整理しておくために、より高度な質問を投稿しました:http://stackoverflow.com/questions/8423226/update-a-var-which-gets-it-its-value-from-another-component –

関連する問題