2009-07-31 2 views
0

In meiner Main-Anwendung habe ich Label (like id=firstname) verwendet, so dass wir in Haupt verwendet firstname.text für Datenbindung verwenden können. Aber ich habe benutzerdefinierte canves-Komponente erstellt und in Hauptanwendung mit Viewstack laden.
In Canves benutzerdefinierte Komponente wie kann ich Label (id = Vorname) binden.Wie kann die Datenbindung zwischen benutzerdefinierten Komponenten in AIR-Anwendungen hergestellt werden?

Ich versuchte:
var username:string = firstname.text aber nicht undefine Vorname anzeigen.
Wie kann ich auf alle Etiketten und Komponenten in Main-Anwendung auf benutzerdefinierte Anwendung zugreifen. Bitte beziehen Sie sich auf eine beliebige URL.

Antwort

1

Kurz gesagt, Sie verwenden binding. Fügen Sie eine Eigenschaft namens firstname zu CustomComponent.mxml und binden Sie es an Ihre 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}" /> 

Dann binden Sie die firstname auf einen Wert in Ihrem main.mxml:

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

Nun, wenn Sie ändern _firstname in Main.mxml, es wird automatisch bis zum Textfeld in Ihrer benutzerdefinierten Komponente filtern.

+0

danke Richard Szalay. Aber Show Data Binding wird nicht in der Lage sein, Zuweisungen zu "_firstname" –

+0

zu erkennen Danke danke Richard Szalay. Es funktioniert –

+0

[Bindable] bewirkt, dass der Compiler Code um das Element generiert, damit er immer noch Zuordnungen erkennen kann. –

Verwandte Themen