| |||||||
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: Aug 2002 Ort: Weimar
Beiträge: 36
| Flash kommt bei der dyn Textfelderstellung nicht mit
Hallo erstmal, nachdem ich nun stundenlang hier nach Lösungen gesucht habe und nicht fündig geworden bin folgendes: Ich lade Variablen aus einem PHP Script. Diese Daten wandel ich in einer For-Schleife in Flash Vars um. Nun sollen Inhalte dieser Variablen in Textfelder, die dynamisch erstellt werden angezeigt werden. Habe dazu ein Script von Smirgel benuzt siehst Du hier nun hat er die Textfelder in der Schleife erst gar nicht angezeigt. Dann habe ich die Textfelderzeugung aus der For-Schleife rausgenommen und ein paar Keyframes später eine weitere For-Schleife eingebunden, die die Textfelder mit den Daten erstellt, das hat mal funktioniert, mal nicht. Nun also habe ich die letzte Schleife noch weiter nach hinten verschoben und jetzt hats funktioniert. Das Problem ist nur, dass ich mich ja nicht darauf verlassen kann, was ist wenn mehr Vars kommen und er noch länger braucht... und warum braucht er so lange??? Hier mein anfängliches Script: ActionScript:
Hoffe, Jemand weiß da mehr als ich ... und davon sollte es doch hier einige geben...
__________________ frustra laborat, qui omnibus placere studet! |
| | |
| | #2 (permalink) |
| Farbe ist Luxus Registriert seit: May 2003 Ort: Köln
Beiträge: 2.405
|
Hallo, hmm, es scheint, als würde das onLoad-Event direkt nach Absenden ausgelöst und nicht erst, wenn alle Daten da sind, wie es eigentlich sen sollte. Eigentlich ist es egal (mal abgesehen von Server-Timeouts), wie lange dein PHP zum Laden braucht; das onLoad-Event wird erst nach Abschluss des Ladevorgangs ausgelöst. Wenn dein PHP aber sehr viele Daten generiert, könnte es ggf. zu einem TimeOut kommen und somit könnten nicht alle Daten geladen sein, wie z.B. die Variable anzahl. Somit würden ach keine Textfelder erzeugt. Ein paar Dinge sind mir an deinem Skript aufgefallen, die vielleicht nicht ganz sinnvoll sind. Evtl. hängt es ja ach damit zusammen: 1. dein load-Aufruf benötigt nur eine URL; das Zielobjekt ist das ladende Objekt, und posten kannst du damit auch nix, dafür gibt es die sendAndLoad-Methode (die entspricht syntaktisch dem, was du geschrieben hast) 2. in der onLoad-Funktion evaluierst du Variablen, was unnötig ist, weil sie zu deinem LoadVars-Objekt gehören: anzahl = this.anzahl; (this ist ja variablenladen) 3. du erzeugst den leeren MC für die Textfelder innerhalb von "this", also innerhalb des LoadVars-Objekts; ich weiß zwar nicht, ob das irgendwas schadet, es ist aber allemal unsauber. Stell dir nur vor, du löschst das Objekt nachher wieder, was bei großen Flash-Applikationen durchaus Sinn macht...Ersrtelle diesen MC also besser ausßerhalb. Ich habe dir das Skript nochmal gepostet: ActionScript:
Wie gesagt: die Sachen sind keine echten Fehler, sollten also eigentlich den korrekten Ablauf nicht stören. Schau dir vielleicht nochmal dein PHP an, wie das aussieht. Was meinst du denn damit, dass das solange dauert? Grüße Sascha
__________________ 12:15, press return |
| | |
| | #3 (permalink) | |
| Neuer User Registriert seit: Aug 2002 Ort: Weimar
Beiträge: 36
| Nach weiteren Versuchen...
Als erstes mal Danke für Deine Antwort. Ich habe also alles mal probiert und bin zu folgendem Ergebnis gekommen: Es klappt jetzt, wenn ich das Textfeld über die var test fülle gehts, über _root["element_wert"+i]; funktioniert es nicht, wobei das ja nicht so schlimm ist, da die var test ja in jedem Durchlauf einen neuen Wert bekommt. ActionScript:
Also im Prinzip kann ich damit leben, nur versteh ich nicht, warum er die Textfeldanweisung so nicht machen will... Zitat:
__________________ frustra laborat, qui omnibus placere studet! Geändert von Titus (20-01-2004 um 09:18 Uhr) | |
| | |
| | #4 (permalink) |
| Farbe ist Luxus Registriert seit: May 2003 Ort: Köln
Beiträge: 2.405
|
ok, jetzt verstehe ich auch, was du mit _root["element_art"+i] vor hast...das kann auch schlicht nicht gehen. Du willst da quasi ein Array erzeugen, was so aber nicht funktioniert. Somit ist _root["element_art"+i] kein Objekt, undefiniert und nimmt ergo auch keine Werte an. Wenn du die Daten auch außerhalb der Textfelder in einem Array verwahren willst, kannst du am Anfang des Skripts schreiben: ActionScript:
und in der Schleife... ActionScript:
Also, die Erzeugung der Textfelder hat sicherlich funktioniert, aber der Inhalt war schlicht leer. In solchen Fällen hilft es immer, nacheinander mögliche Fehler auszuschließen... Also, PHP-Datei im Browser aufrufen und schauen, was diese eigentlich liefert (ist das auch richtig, kommt überhaupt was). Dann in Flash testen, ob diese Datei richtig eingelesen wird (einfach mit einem Haufen traces alles mal ausgeben lassen, oder den Debugger verwenden). Sowas wie Textfelder vielleicht erstmal mit "abc" füllen um zu sehen, ob die richtig erstellt wurden. Manchmal hakt es da auch mit der Farbe oder dem Font... Kurz gesagt: wenn du ein Problem mit den Textfeldern lösen willst musst du sicherstellen, dass bis dahin auch alles funktioniert. Und ruhig auch die Sachen nochmal checken, die einem sicher scheinen und die man sich deswegen nicht anschaut...es sind so oft völlige Kleinigkeiten, an die man nie gedacht hätte.. bla, genuch geredet. ![]() Grüße Sascha
__________________ 12:15, press return |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |