2010-12-09 17 views
0

Noob Frage (wahrscheinlich). Ich habe eine Klasse mit einem var textFieldObjets:Textfield in meiner Klasse environnementZugriff auf eine Variable in einer Klasse durch eine andere Klasse

Was ich tun möchte, ist diese var von einer anderen Klasse zuzugreifen und den Text zu ändern. Ich versuchte Dinge wie environnement.textFieldObjets.text = "blabla"; Got Fehler 1119, Zugriff auf eine mögliche undefinierte Eigenschaft textFieldObjets durch eine Referenz mit statischen Typ-Klasse. Ich kann nicht einmal auf meine Umgebungsklasse zugreifen ...

Wie könnte ich das tun? Danke!

+0

Ich weiß nicht, ob es ein Tippfehler ist, aber normalerweise sollten in Flex/AS3-Codierungskonventionen Klassennamen mit einem Großbuchstaben beginnen (Environnement). Sie können mehr über diese Kodierungskonventionen hier lesen: http://opensource.adobe.com/wiki/display/flexsdk/Coding+Conventions#CodingConventions-Classnames – David

+0

Hahaha true! Mein Fehler, kein Tippfehler, nur etwas, was ich zu Beginn meines Trainings nicht gelernt habe. Das werde ich für zukünftige Kodierungen beachten. Vielen Dank! – Elggetto

Antwort

1

Machen Sie die Variable zu einem Klassenmitglied mit Bezeichner.

public static var textFieldObjects:Textfield; 

Weitere Informationen darüber, was static und public Schlüsselwörter bedeuten, Sie auf diese Frage beziehen könnte: Actionscript 3: Can someone explain to me the concept of static variables and methods?

Dokumentation von Adobe: http://help.adobe.com/en_US/ActionScript/3.0_ProgrammingAS3/WS5b3ccc516d4fbf351e63e3d118a9b90204-7f30.html

+0

ohhh also die statische macht die Magie! Ich habe dir gesagt, du musstest es nur öffentlich machen, um es sehen zu können! Danke vielmals!!! – Elggetto

0

1. Sie müssen die Variable deklarieren "public":

public var textFieldObjects:TextField; 

2. Sie können auf eine normale Eigenschaft nicht direkt über die Klasse zugreifen - Sie benötigen eine Instanz Ihrer environnement Klasse. Wenn Sie mit dem Flash-Tool arbeiten, müssen Sie Ihre Komponente auf der Bühne platzieren (dies erstellt die Instanz) und dann eine Instanz-ID angeben. Dann können Sie diese ID verwenden, um über Ihr ActionScript auf die Komponente zuzugreifen.

Also, wenn Sie Ihre Instanz anrufen: myEnv, dann Actionscript könnte wie folgt aussehen:

myEnv.textFieldObjets.text = "blabla"; 

Wenn Sie in Flex arbeiten, dann funktioniert es genauso - nur die Komponente platzieren in Ihre mxml document, und setzen Sie das Attribut id auf einen eindeutigen Namen. Jetzt können Sie über das Skript auf diese Komponente zugreifen, indem Sie die von Ihnen definierte ID verwenden.

+0

Yess danke für die Erklärung! (Ich arbeite im Flash). – Elggetto

Verwandte Themen