| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer User Registriert seit: Feb 2011
Beiträge: 15
| Zugriff auf ein Textfeld der Stage von einer Klasse aus
Ich habe eine Dokumentenklasse, sowie eine separate Klasse erstellt und möchte nun von der separaten auf ein Textfeld zugreifen, welches auf der Bühne liegt. Ich habe mich stundenlange durch threads geforstet und auch ein wenig dazu gefunden, sowie angewendet, aber ich bekomme es einfach nicht zum funktionieren. Mein übergebenes ,auf der Bühne platziertes Objekt ist und bleibt immer null. Hier ein Auszug meines Codes: Hauptdatei: PHP-Code: Mein Problem: Das Stage Event startet nie und der Text wird nicht ausgegeben, das übergebene Objekt ist immer Null. Über eine wirklich simple Erklärung was ich ändern muss wäre ich wirklich dankbar, ich bin in Flash noch nicht allzu bewandert. p.s. ich weiss, dass man variable normalerweise als private deklariert und eine getter und setter funktion einbaut, zu einfacheren test-zwecken habe ich aber vorerst alle als public eingestellt. Geändert von Joralin (05-12-2011 um 03:00 Uhr) |
| | |
| | #2 (permalink) | |
| Keine Panik Registriert seit: Apr 2010 Ort: Düsseldorf (im ernst)
Beiträge: 1.868
|
oh mann, wo soll man da anfangen; das ist ja komplett durcheinander. - was genau hast du vor? - welches ist die Dokumentenklasse? Main oder SpielerMenues? - ist das TF auf der Bühne oder soll es per Code erzeugt werden? - welchen Sinn hat SpielerMenues? was soll es machen? - bitte formatier deinen Code. dann wäre dir aufgefallen, dass dein Konstruktor Main außerhalb der Klasse definiert ist. Allein dass hätte schon einen Fehler auslösen müssen, dann gibt es keine Klasse Textfield, die heißt TextField - nur Klassennamen fangen mit Großbuchstaben an; coding conventions (SpielerOverlays) - ADDED_TO_STAGE ist da sinvoll, wo man auf die stage zugreifen will Zitat:
hier mal eine basis: PHP-Code: PHP-Code: | |
| | |
| | #3 (permalink) |
| Neuer User Registriert seit: Feb 2011
Beiträge: 15
|
Danke für die schnelle Antwort. Tut mir leid, ich bin gerade nicht ganz auf der Höhe. Ich bin ziemlich erkältet, muss aber dringend für die Uni Programmieren. Der Code dient eigentlich nur als Beispiel, da mein eigentlicher Code sehr lang ist und viele andere Funktionen beinhaltet. Er kompilliert aber und hat keine Syntaxfehler wie mein hier eingefügter. Das mit der Großschreibung der Klassen ist mir bekannt, wie gesagt, ich bin nur nicht ganz auf der Höhe gerade. - Main ist die Dokumentenklasse, da habe ich mich nur verschrieben. - Das TF war nur als Beispiel gedacht,gehen wir mal von einem händig eingefügten aus. Mir geht es darum, wie ich Objekte der Bühne von einer anderen Klasse aus bearbeiten kann und wie ich Sie korrekt übergebe. SpielerMenues ist für die Erstellung der Oberflächen und Menüs eines Spiels gedacht. Der Zusammenhang ist aber nicht weiter von Bedeutung, wie gesagt ich möchte einfach nur Texte, Movieclips, etc die händig eingefügt wurden von der SpielerMenues Klasse aus bearbeiten können. Mit dem Stage Event meine ich den Event Listener "Event.ADDED_TO_STAGE". Ich habe eine simple trace anweisung in die init Funktion geschrieben und Sie wurde nicht ausgeführt. Da der Eventlistener in Constructor steht müsste er ja automatisch ausgelöst werden, wenn das übergebene objekt (das Text Feld) zur bühne hinzugefügt wird oder liege ich da falsch? Geändert von Joralin (05-12-2011 um 05:20 Uhr) |
| | |
| | #4 (permalink) | |
| + Zimt & Zucker Registriert seit: Mar 2006 Ort: hinterm Mond gleich links
Beiträge: 2.041
|
moin, gute Besserung Zitat:
Die Dokumentklasse wird als einzige schon vor ihrer Instantiierung der Anzeigeliste hinzugefügt, deshalb ist "stage" im Konstruktor schon definiert. Um die Klasse auch als normale Klasse verwendbar ist, ergibt sich das if Konstrukt in thomas' Code, da nur durch dieses der Aufruf der init() Funktion garantiert ist. Nein, durch das hinzufügen eines Listeners, wird noch lange nicht die Funktion aufgerufen, dies soll ja erst geschehen, wenn das Ereignis auch eintritt. Nein, die Funktion wird nicht für jedes weitere, der Anzeigelsite hinzugefügte Objekt ausgeführt.
__________________ anbei Grüße vom milchreis: Viva la [Silb] [Von null auf Flash in einem Klick.] <<< klick | |
| | |
| | #5 (permalink) |
| Neuer User Registriert seit: Feb 2011
Beiträge: 15
|
Ok nun funktioniert es, ich danke euch beiden :-) Das mit dem Event Listener hab ich etwas anders gemeint. Ich war mir nur etwas unschlüssig wie der Constructor in Flash funktioniert, wird er nur beim start einmal automatisch ausgeführt oder mehrmals während der laufzeit des programs und in intervallen? Geändert von Joralin (05-12-2011 um 08:36 Uhr) |
| | |
| | #6 (permalink) | |
| Flash-Designer Registriert seit: May 2006 Ort: Wiesbaden
Beiträge: 6.162
| Zitat:
ActionScript:
__________________ Viele Grüße // Martin Martin Kraft // Interaktionsdesign Hilfreiche Websites: // Hilfe zur Adobe Flash Plattform // ActionScript 2 Referenz // ActionScript 3 Referenz // ActionScript 3 Arbeitshandbuch // weitere Flash Ressourcen Bitte keine Flashfragen per PM oder Profilnachricht! Dafür ist das Forum da! | |
| | |
| | #7 (permalink) | |
| Keine Panik Registriert seit: Apr 2010 Ort: Düsseldorf (im ernst)
Beiträge: 1.868
| Zitat:
Das ist ein häufiger "Fehler" (nicht wirklich falsch, aber unnötiger Overhead) bei Leuten die vorher AS1/2 Programmiert haben, weil dort für jede menge unnötiger Programmlogik an der Klasse MovieClip hängt. Wenn es sich hier also lediglich um einen Controler handelt, würde ich von flash.events.EventDispatcher erben lassen (der Kommunikation wegen) wenn andererseits SpielerMenues grafische Elemente beinhaltet, finde ich es nicht schön, dass das TF nicht in SpielerMenues liegt. frei nach dem Motto: pfusch nicht an fremden Objekten rum || Kümmer dich (nur) um deinen eigenen s*****. | |
| | |
| | #8 (permalink) |
| Neuer User Registriert seit: Feb 2011
Beiträge: 15
|
Sorry, ich wollte da Ganze als Beispiel aufzeigen, die Text-Felder, die ich fürs Menü benötige, sind auch in diesem deklariert. Eine KLeinigkeit würde ich zum nachvollziehen nur gerne noch wissen. Es sind keine Angaben im Code gemacht, an was der Eventlistener (normalerweise weist man den ja einem Objekt etc zu) angehängt wird. Wird er automatisch der Instanz der Main Klasse zugewiesen? Und woher weiss das Programm, bei welcher Datei er reagieren soll, wenn sie zur Stage hinzugefügt wird? Man möchte ja nicht, dass er bei allem reagiert was der Stage hinzugefügt wird, sondern nur einem bestimmten Objekt, Geändert von Joralin (05-12-2011 um 13:10 Uhr) |
| | |
| | #9 (permalink) | |
| + Zimt & Zucker Registriert seit: Mar 2006 Ort: hinterm Mond gleich links
Beiträge: 2.041
| Zitat:
PHP-Code: Stichwort: scope.
__________________ anbei Grüße vom milchreis: Viva la [Silb] [Von null auf Flash in einem Klick.] <<< klick | |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| stage Zugriff aus Klasse | sara11 | ActionScript 3 | 23 | 01-06-2009 21:33 |
| Zugriff auf Instanzen auf der Stage von einer Klasse aus... | Steril707 | ActionScript 3 | 3 | 12-02-2009 10:19 |
| Zugriff auf stage von Klasse aus | Eddie_Mc_Flash | ActionScript 3 | 15 | 06-09-2008 23:44 |
| Zugriff auf stage aus einer statischen Klasse | astrocreep | ActionScript 3 | 2 | 03-06-2008 10:32 |
| stage Zugriff aus einer Klasse? | HorizontLaeufer | ActionScript 3 | 4 | 25-11-2007 11:36 |