| |||||||
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) |
| _M++ Registriert seit: Mar 2004 Ort: Stuttgart
Beiträge: 403
| loadVars
Mahlzeit Ich habe mal eine Frage bezüglich loadVars. Wie geht ihr denn mit der Kommunikation zwischen PHP und FLASH um. Habt ihr eine zentrale Funktion oder Klasse die dies managed, oder definiert ihr an 50 verschiedenen Orten dann 50 verschiedene loadVars. Ich hab mir eine zentrale Funktion geschrieben, die das Daten-Management übernimmt. Ich bin jedoch nicht zufrieden, da diese Funktion sehr unflexibel ist. Wie geht ihr damit um? Ich bedanke mich mal gruss |
| | |
| | #2 (permalink) |
| Techniker Registriert seit: Sep 2003 Ort: 64807
Beiträge: 17.292
|
"..Ich bin jedoch nicht zufrieden, da diese Funktion sehr unflexibel ist .. Wie geht ihr damit um?.." genauso: wir sind damit unzufrieden ;-) zeig vielleicht einmal deine lösung und sage uns, was genau dir daran nicht passt. da kann man drüber reden.
__________________ die ultimative antwort auf alle programmierfragen: der debugger mfg h.g.seib www.SeibsProgrammLaden.de |
| | |
| | #3 (permalink) |
| muh Registriert seit: Apr 2002 Ort: Freiburg
Beiträge: 4.350
|
Bei uns läuft sowas immer über eine zentrale Klasse, ich würde ganz im Gegenteil behaupten, das das sehr flexibel ist. Womit hast du denn Probleme?
__________________ »Carpe diem«, sagte der Graf. (Terry Pratchett: Ruhig Blut!) |
| | |
| | #4 (permalink) | |
| _M++ Registriert seit: Mar 2004 Ort: Stuttgart
Beiträge: 403
|
Servus Zitat:
![]() Also meine Lösung sieht folgendermaßen aus. Ich habe eine Funktion unter _root definiert, die einen Parameter übergebene bekommt. Innerhalb der Funktion wird dann ein loadVars Objekt erzeugt und die Daten aus der PHP Datei gelesen. Bin ich jetzt in einem MC zum Beispiel _root.xxx.meinMC rufe ich die _root.funktion auf. Am liebsten wäre mir, wenn die _root.funktion den Inhalt aus der PHP Datei einfach zurück gibt und ich im MC: _root.xxx.meinMC dann meinString = _root.funktion schreiben kann. Ich bekomme jedoch immer einen Leerstring zurück. Ich vermute weil die Daten noch nicht verfügbar sind wenn die Funktion die Daten zurück gibt. Ich habe dies dann gelöst, dass meine _root.funktion eine funktion (zum Beispiel: _root.xxx.meinMC.schreibeDatenAusPhpInTextdatei() ) aufruft wenn die Daten geladen sind. Dann funktioniert es. Und das ist schon meine Frage, wie kann dies umgehen das ich nicht irgendwelche Funktionen aufrufen muss die Daten an gewünschtem Ort und Stelle verfügbar zu machen. Wenn es zu verwirrend ist erkläre ich es gerne noch mal Vielen dank Gruss Geändert von monroe (21-08-2006 um 10:54 Uhr) | |
| | |
| | #5 (permalink) |
| Techniker Registriert seit: Sep 2003 Ort: 64807
Beiträge: 17.292
|
du hasst dir bereits selbst die antwort gegeben: "..Ich vermute weil die Daten noch nicht verfügbar sind wenn die Funktion die Daten zurück gibt.." das ist korrekt! AS wartet nicht, bis die daten geladen sind, sondern der aktuelle script wird zu ende geführt. der vorgang etwas vom server nach zu laden geschieht asynchron. die daten kommen irgendwann viel später - oder auch garnicht. sonst bräuchte man ja auch keine empfangs-funktionen wie onLoad durch .send, .load bzw .sendAndLoad ausgelösst.
__________________ die ultimative antwort auf alle programmierfragen: der debugger mfg h.g.seib www.SeibsProgrammLaden.de Geändert von hgseib (21-08-2006 um 12:54 Uhr) |
| | |
| | #6 (permalink) |
| _M++ Registriert seit: Mar 2004 Ort: Stuttgart
Beiträge: 403
|
danke für die Antwort Aber wie bewerkstellige ich dass dann? In meiner _root.funktion befindet sich eine Routine die prüft ob die Daten erfolgreich und ganz geladen wurden. Sollte ich die Daten extern zwischenspeichern? Dann müsste ich ja aber in einem onEnterFrame fragen wann diese Variable "gefüllt" wäre. Mir ist nicht klar wie ich auf diesen Ladevorgang (onLoad) in der Funktion, an einer anderen Stelle warte. Gruss Geändert von monroe (21-08-2006 um 11:14 Uhr) |
| | |
| | #7 (permalink) |
| muh Registriert seit: Apr 2002 Ort: Freiburg
Beiträge: 4.350
|
Du wartest garnicht, sondern du übergibst deiner _root-Funktion eine Callback-Funktion, die dann die Daten verarbeitet. Allerdings würde ich für sowas als allererstes mal ne Klasse anlegen, die sich um die Ladevorgänge kümmert, einfach so ne Funktion in _root ... das ist nicht wirklich sauber. Die Klasse kannst du dann auch immer wieder verwenden, durch die Callbacks ist sie allgemein einsetzbar.
__________________ »Carpe diem«, sagte der Graf. (Terry Pratchett: Ruhig Blut!) |
| | |
| | #8 (permalink) |
| Techniker Registriert seit: Sep 2003 Ort: 64807
Beiträge: 17.292
|
"..Dann müsste ich ja aber in einem onEnterFrame fragen wann diese Variable "gefüllt" wäre.." ja, nur eleganter: das onLoad-event teilt dir genau das mit. meine besten 'erklärversuchsergebnisse' hatte ich damit (sinngemäss): du arbeitest nur in frame1. function xxxx.onLoad(ok) { if (ok) gotoAndPlay(2); } sobald der programmablauf in frame 2 angekommen ist kannst du die geladenen daten benützen. das mit den frames dient nur zur erklärung. das geht auch, wenn du nach if-ok eine funktion aufrufst. jedenfalls, die ursprünglich auslösende funktion ist abgelaufen, tot, passe, im datenhimmel, wo auch immer aber auf garkeinen fall mehr auf empfang!
__________________ die ultimative antwort auf alle programmierfragen: der debugger mfg h.g.seib www.SeibsProgrammLaden.de Geändert von hgseib (21-08-2006 um 12:40 Uhr) |
| | |
| | #10 (permalink) |
| _M++ Registriert seit: Mar 2004 Ort: Stuttgart
Beiträge: 403
|
hallo jungs ich hab meine erste klasse in flash geschrieben, bitte nicht hauen!!! sind arge Konzeptionsfehler vorhanden? *angst hat* ich hab eine PHP Datei: php.php PHP-Code: Code:
und meine klasse! Code:
ausgegeben wird ein undefined! danke für euer bemühen gruss |
| | |
| | #11 (permalink) |
| muh Registriert seit: Apr 2002 Ort: Freiburg
Beiträge: 4.350
|
Jepp, da sind Konzeptionsfehler drinn ![]() Also, es ist ja klar, dass das Laden von Daten in Flash immer asynchron abläuft, d.h. du startest eine Anfrage, kannst aber nicht im gleichen Atemzug die Daten verwenden, sondern musst entweder regelmäßig prüfen, ob die Daten da sind, oder über ein Callback verständigt werden. Wenn man jetzt das hier ansieht: Code:
Dann fehlt da schonmal das Asynchrone, egal was deine Klasse tut, so kann es nicht gehen, da oDb.ausgabe noch nicht definiert sein kann. Am besten du baust mal in deinen Code ganz viele traces ein, und gibst an, was grad passiert, und dann noch die Zeit (einfach getTimer()) dazu aus, dann siehst du, wie dein aktueller Code durchlaufen wird.
__________________ »Carpe diem«, sagte der Graf. (Terry Pratchett: Ruhig Blut!) |
| | |
| | #12 (permalink) |
| _M++ Registriert seit: Mar 2004 Ort: Stuttgart
Beiträge: 403
|
servus Janoscharlipp und CO ich war leider eine Weile verhindert und konnte nicht weiter machen. Aber ich habe troztdem eine Frage. Wie kann ich denn die onLoad Funktion public machen, so dass ich abfragen kann wann die Daten fertig geladen wurden. zum Beispiel: wenn objekt.status = ok ist dann objekt.ausgabe der dateien ich verzweifel: Code:
aufruf: Code:
danke für die hilfe gruss |
| | |
| | #13 (permalink) |
| notzucht Registriert seit: Nov 2003 Ort: Potsdam
Beiträge: 2.939
|
Mit Events vieleicht? Biliges beispiel: PHP-Code: PHP-Code: PHP-Code:
__________________ . Flex in a week | Viertel vor halb nach Vollmond | ^^°.°^^ | Waltz with Bashir . Geändert von shorty (02-09-2006 um 12:12 Uhr) |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |