Flex Referenz Kind Element

Wie können wir auf ein Element verweisen, das zur Laufzeit dynamisch hinzugefügt wird?

Beispielcode:

<?xml version="1.0" encoding="utf-8"?>


    




    
    


Wenn ich versuche, den obigen Code auszuführen, wird ein Fehler ausgegeben

Error #1069: Property button3 not found on project1 and there is no default value.

Also, wie kann ich die neu hinzugefügte Schaltfläche aufrufen?

0
Versuchen Sie, die Eigenschaft name ebenfalls auf "button3" festzulegen. Nicht 100% sicher, ich erinnere mich, aber es könnte den Trick machen.
hinzugefügt der Autor Eduardo, Quelle
Kannst du nicht getChildByName verwenden?
hinzugefügt der Autor Eduardo, Quelle
button3 ist lokal auf die init -Methode beschränkt; es gehört nicht zu der Klasse (d. h. this ). Lesen Sie diese Antwort Ich habe gerade geschrieben; Es ist genau das gleiche Problem. Allerdings müssen Sie in einer Flex-Anwendung fast nie Komponenten dynamisch zur Bühne hinzufügen. Sie sollten wahrscheinlich stattdessen List/DataGroup oder Zustände verwenden, abhängig von Ihrem Anwendungsfall.
hinzugefügt der Autor RIAstar, Quelle
OK. Sie haben gerade bemerkt, dass Sie versucht haben, id über actionscript zuzuweisen. So funktioniert es nicht. Lesen Sie hierzu: stackoverflow.com/questions/6533585/& hellip;
hinzugefügt der Autor RIAstar, Quelle
getChildByName soll die Verwendung der Flash Pro IDE erleichtern und hat keinen Platz in einer geeigneten Flex-Anwendung.
hinzugefügt der Autor drkstr1, Quelle
versuchen Sie es mit updatecomplete anstelle von applicationcomplete
hinzugefügt der Autor RIA Dev, Quelle

2 Antworten

Speichern Sie Ihre Instanz in einer Variablen und referenzieren Sie sie, wann immer Ihnen danach ist. Verwenden Sie ein Array für eine Liste von Variablen.

0
hinzugefügt

Sie können es versuchen

var obj = this.getChildByName ("button3");

Danach können Sie mit obj das Label verfolgen

0
hinzugefügt
Verwenden Sie in Flex nicht getChildByName. Verwenden Sie einfach das richtige Actionscript.
hinzugefügt der Autor drkstr1, Quelle
getChildByName macht viel mehr Sinn, wenn man in der Flash-IDE arbeitet, da die Umgebung dazu neigt, eine große Anzahl von String-Manipulationen für referenzierende Instanzen zu benötigen (EG. button1, button2, etc.). Dieses Programmierkonstrukt ist jedoch sehr ineffizient und anfällig für Fehler (mit anderen Worten, schlechte Praxis). In einem richtigen Actionscript- oder Flex-Projekt sollte diese Technik nur als letztes Mittel verwendet werden. Stattdessen sollte man geeignete Programmierkonstrukte verwenden, um Instanzen von DisplayObject zu referenzieren.
hinzugefügt der Autor drkstr1, Quelle
Kannst du bitte erklären, warum jemand "getChildByName" nicht im Flex verwenden soll? Ich benutze es oft !!!!
hinzugefügt der Autor Anas Bin Numan, Quelle