| |||||||
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: Sep 2003
Beiträge: 28
| Problem mit Flash´s asynchronen Verhalten
Hallo zusammen, ich möchte bei einer Funktion true oder false zurückgeben wenn ein request erfolgreich vom Server zurückgegeben wurde. zB ActionScript:
Die Variable erfolgreich ist beim obigen Beispiel immer true auch wenn der Webserver gestopt worden ist und somit keine Verbindung möglich ist. In der Funktion readResponse(success) bekomm ich jedoch true|false zurück nachdem sendAndLoad(..) abgeschlossen ist. Somit frage ich diesen Wert ab und habe das Problem das nichts zurückgegeben wird (erfolgreich == null): ActionScript:
so long newton |
| | |
| | #2 (permalink) |
| .--. .. ..- ... Registriert seit: Jul 2002 Ort: munich
Beiträge: 1.345
|
'sendAndLoad' hat angeblich keinen Rückgabewert ... aber du definierst doch eh: ActionScript:
readResponse ist doch bestimmt eine Methode ... in der du prüfen könntest, ob der server auch tatsächlich Daten gesendet hat ...
__________________ one out of many |
| | |
| | #3 (permalink) |
| Neuer User Registriert seit: Sep 2003
Beiträge: 28
| ![]() wer lesen kann ist klar im vorteil! also nochmal: 1. sendAndLoad gibt immer true zurück! 2. ich möchte nicht in der Funktion readResponse prüfen ob der Server den request richtig verarbeitet hat (mach ich sowieso) sondern in der Funktion sendRequest true oder false zurückgeben, da aber das Protokoll erst an den Server geschickt und die Antwort wieder empfangen werden muss bekomm ich immer null zurück (1. Codesnip - Ablauf dauert zu lange). Im 2. Codesnip frag ich den in der Funktion readResponse erhaltenen Wert success (der mir sagt ob der Server nun was geschickt hat oder nicht) solange ab bis ich true oder false zurückbekomme und gib erst dann diesen wert zurück, allerdings wartet flash nicht auf diesen return Wert und setzt 'erfolgreich' auf null.. wie kann ich das umgehen dass 'erfolgreich' diesen erhaltenen wert übergeben bekommt ohne ihn einfach in der readResponse Funktion in die Variable zu speichern sodass ich diesen im nachhinein wieder abfragen muss? |
| | |
| | #4 (permalink) | ||
| .--. .. ..- ... Registriert seit: Jul 2002 Ort: munich
Beiträge: 1.345
|
'2.' -> eben mit senAndLoad startest du sozusagen einen neuen thread, der selbständig weiterläuft, wenn 'onLoad' erzeugt wird ... was willst du denn mit ActionScript:
anfangen? aus der Referenz: Zitat:
Zitat:
... oder willst du prüfen, ob flash eine methode ausführt, wenn du angibst, dass es eine ausführen soll?
__________________ one out of many | ||
| | |
| | #5 (permalink) |
| Neuer User Registriert seit: Sep 2003
Beiträge: 28
|
tja eben.. keine Rückgaben ..desshalb wird im ersten Codesnip immer true zurückgegeben. (beachte 2. Codesnip) möchte nicht das 'erfolgreich' einen NULL-Wert bekommt bevor nicht success in der Funktion readResponse gesetzt worden ist. noch nicht verständlich? 'erfolgreich' führt die Funktion sendRequest() aus und sollte die erhaltene Variable success der Funktion readResponse() zurückbekommen.. |
| | |
| | #6 (permalink) |
| .--. .. ..- ... Registriert seit: Jul 2002 Ort: munich
Beiträge: 1.345
| ActionScript:
woher soll der 'oEF' denn auf 'success' zugreifen können? sorry, geb' mir echt mühe deine script irgendwie zu interpretieren, aber ich weiss echt nicht, was du da eigentlich bastelst ... ... warum baust du den 'oEF' überhaupt ein, wenn es das 'onLoad' gibt ?? entweder das ganze ist woodoo und ich komm nicht dahinter, oder das konzept ist suboptimal ...
__________________ one out of many |
| | |
| | #7 (permalink) |
| helpQLODhelp Registriert seit: Feb 2002 Ort: Köln
Beiträge: 8.505
|
Du kannst an Flash asynchronem Verhalten nichts ändern. Wenn du unbedingt auf das Ergebnis warten willst, dann musst du vor dem Request alles anhalten und dann bei onLoad wieder alles starten. Die Antwort deines Servers kannst du dann aus dem LoadVars-Objekt auslesen. mfg r.
__________________ Ralf Bokelberg™ - Flex & Flash Consulting |
| | |
| | #9 (permalink) |
| helpQLODhelp Registriert seit: Feb 2002 Ort: Köln
Beiträge: 8.505
|
@pius: Ja stimmt, das hast du auch gesagt Aber newton hat es irgendwie nicht verstanden. Deshalb habe ich es einfach nochmal gesagt. [OT] PHYBAS, ja ich erinnere mich dunkel, das war dieses Simulationsdingbums für deine Uni, oder ? Herzlichen Glückwunsch ! [/OT] mfg r.
__________________ Ralf Bokelberg™ - Flex & Flash Consulting |
| | |
| | #11 (permalink) |
| helpQLODhelp Registriert seit: Feb 2002 Ort: Köln
Beiträge: 8.505
|
Mit einem allgemeinen Snippet kann ich dir nicht dienen, es kommt darauf an, was du erreichen möchtest. Was möchtest du denn anhalten ? mfg r.
__________________ Ralf Bokelberg™ - Flex & Flash Consulting |
| | |
| | #12 (permalink) |
| Neuer User Registriert seit: Sep 2003
Beiträge: 28
|
ich möchte das zu frühe setzen der Variable 'erfolgreich' verhindern (wird durch asynchrones Verhalten gesetzt bevor die Antwort vom Server zurückgekommen ist).. diesen Vorgang möchte ich anhalten wenns irgendwie geht..sodass erst nach der antwort des Servers 'erfolgreich' gesetzt wird sonst bekomm ich immer null zurück. Angenommen ich möchte einen user mit ActionScript:
einloggen (Die login-Funktion ist ähnlich wie die sendRequest-Funktion aufgebaut.) und möchte das login(user, password) true oder false zurückgibt je nach dem ob der login im Hintergrung erfolgreich war oder nicht. mbd |
| | |
| | #13 (permalink) |
| .--. .. ..- ... Registriert seit: Jul 2002 Ort: munich
Beiträge: 1.345
|
dann sollte der server eine Antwort im XML-Format zurückschicken, in der steht, ob der LogIn erfolgreich war ... du erfährst ob die Antwort angekommen ist, in dem du abwartest, bis der 'onLoad'-Handler aufgerufen wird ... dann musst du sie auswerten, die generierte Antwort ... ... denn der server wird ja wohl 'fast' immer antworten, ob mit 'access' oder 'denied' ... den Rest hälst du an, indem einfach keine weiteren Methodenaufrufe folgen ... und der Thread erst ab dem 'onLoad' weitergeht ...
__________________ one out of many |
| | |
| | #14 (permalink) |
| helpQLODhelp Registriert seit: Feb 2002 Ort: Köln
Beiträge: 8.505
|
@newton: So funktioniert Flash nicht. Flash kann nicht "sleepen" bis das Ergebnis da ist. Stattdessen musst du selbst den Programmfluss so anlegen, das er unterbrochen wird. Das kannst du z.B. mit Frames machen . Beim Absenden des Request hälst du die Zeitleiste mit stop () an und beim Empfangen der Antwort startest du sie wieder mit play() mfg r.
__________________ Ralf Bokelberg™ - Flex & Flash Consulting |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |