2009-07-31 15 views
0

私のメインアプリケーションでは、ラベル(like id=firstname)を使用したので、主に使用されているfirstname.textをデータバインディングに使用することができます。しかし、私はカスタムコンポーネントを作成し、ビュースタックを使用してメインアプリケーションにロードしています。
canvesカスタムコンポーネントでは、ラベルをどのようにバインドできますか(id = firstname)。AIRアプリケーションのカスタムコンポーネント間のデータバインド方法は?

私は試しました:
var username:string = firstname.textただし、未定義のファーストネームは表示されません。
メインアプリケーションのすべてのラベルとコンポーネントにカスタムアプリケーションにアクセスするにはどうすればよいですか。任意のURLを参照してください。

答えて

1

つまり、bindingを使用します。 CustomComponent.mxmlにfirstnameというプロパティを追加して、あなたのfirstnameTextboxにバインド:

<mx:Script> 
    <![CDATA[ 
     private var _firstname : String; 

     [Bindable] // only required on getter 
     public function get firstname() : String 
     { 
      return _firstname; 
     } 

     public function set firstname(value : String) : void 
     { 
      _firstname = value; 
     } 
    ]]> 
</mx:Script> 
<mx:Textbox id="firstnameTextBox" text="{firstname}" /> 

その後、あなたはmain.mxmlの値にfirstnameをバインド:

<mx:Application> 
    <mx:Script> 
     <![CDATA[ 
      [Bindable] 
      private var _firstname : String; 
     ]]> 
    </mx:Script> 
    <cs:CustomComponent id="customComponent" firstname="{_firstname}" /> 
</mx:Application> 

さて、あなたが変更するたびにMain.mxmlの_firstnameをクリックすると、カスタムコンポーネントのテキストボックスまで自動的にフィルタリングされます。

+0

Richard Szalayに感謝します。しかし、データバインディングは "_firstname"への代入を検出することができません。 –

+0

Richard Szalayに感謝します。これは正常に動作しています –

+0

[Bindable]は、コンパイラが実際にメンバーを囲むコードを生成して、割り当てを検出できるようにします。 –

関連する問題