[AS3] Textfeld Inhalt lesen - Die Flash-Hierarchie macht mich wahnsinnig

Skippy

Mitglied
Hallo Forum...

Ich bin hier fast am durchdrehen, mein Buch weiss nix, Internet weiss nix...
Hab mir jetzt zahlreichen Stoff über bubbling, ziele, unter ober blaaa durchgelesen und es hilft alles nichts..

Mein Problem ist folgendes:

1. Hauptfilm AS

Code:
setupWindow.speichern.addEventListener("click", makeFaecherBIG);

function makeFaecherBIG(klick2:MouseEvent):void {
	
	trace(setupWindow.name1.text);
}

2. setupWindow MC das auf Hauptbühne liegt, setupWindow ist der Instanzname

Code:
firstButton.addEventListener("click", makeFaecher);

function makeFaecher(klick:MouseEvent):void {
		var name1:TextField = new TextField();

		var inhaltName1:String = "-";
		name1.text = inhaltName1;
		name1.name = "name1";

		addChild(name1);
}

"speichern" und "firstButton" sind jeweils die Instanznamen von 2 verschiedenen buttons, aber jedesmal wenn ich "speichern" drücke bekomme ich die Meldung:
Code:
TypeError: Error #1010: Ein Begriff ist nicht definiert und hat keine Eigenschaften.
	at main_fla::MainTimeline/makeFaecherBIG()

Kann mir jemand vieleicht erklären warum das nicht klappt und wo ich erfahre (oder es vieleicht auch kurz erläutern) wie die ganze Hierarchie geschichte zusammen hängt, denn meiner Meinung nach ist das absolut richtig was ich da stehen habe, alles andere würde doch garkeinen Sinn ergeben?

Aaaaah ich dreh durch....

MfG und schönes Wochenende, Skippy
 
Zuletzt bearbeitet:
makeFaecherBIG wird von dem MC "speichern" in deinem setupWindow aufgerufen. In dem drin findet der aber keinen weiteren serupWindow-MC, denn der meint ja den ihm übergeordneten MC und keinen in ihm enthaltenen.

Du solltest also per Stage.setupWindow.name1.text auf den Text zugreifen. Vielleicht hilft die Grafik im Anhang zu checken, wieso. :)
 

Anhänge

  • Unbenannt.jpg
    Unbenannt.jpg
    73,8 KB · Aufrufe: 57
Hey,

vielen Dank für die Antwort und die mühe der Zeichnung xD

hab das jetzt so stehen:

Code:
setupWindow.speichern.addEventListener("click", makeFaecherBIG);

function makeFaecherBIG(klick2:MouseEvent):void {
	
	trace(Stage.setupWindow.name1.text);
}

und jetzt kommt folgendes:

Code:
1119: Zugriff auf eine möglicherweise nicht definierte Eigenschaft setupWindow über einen Verweis mit statischem Typ Class - trace(Stage.setupWindow.name1.text);

gnaaaarrrrgg!!
Eigentlich habe ich das so wie in deiner Zeichnung auch im Kopf, aber siehst ja, es will nicht...
 
Zuletzt bearbeitet:
Tag
dann probier es mal so:

Code:
setupWindow.speichern.addEventListener("click", makeFaecherBIG);
var myRoot:MovieClip = this;

function makeFaecherBIG(klick2:MouseEvent):void {
	trace(myRoot.setupWindow.name1.text);
}

AS3 kann manchmal garstig sein wenn man das gute alte _root zurück haben will, ich kenn das.
 
PHP:
trace(setupWindow.name1.text);

ändern in ->
PHP:
trace(TextField(setupWindow.getChildByName('name1')).text);

Du erstellt dein Textfeld zur Laufzeit daher mußt du mittels getChildByName auf dein Textfeld zugreifen. ;)
Dein restlicher code ist ok.
 
Feeeeetzig, es geht endlich =D

Hurra ihr habt meine Nerven gerettet ^^ also die Variante mit dem "myRoot" hat nicht funktioniert, trotzdem danke für die Hilfe =D

Mit dem getChildByName hats geklappt, werd jetzt nurnoch mich darüber genauer informieren ums auch zu verstehen und nicht nur zu benützen.

Thx a lot and have a nice day!
 
Zurück