Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 17-03-2005, 12:09   #1 (permalink)
n00b
 
Registriert seit: Dec 2004
Beiträge: 94
Parameter bei Callback-Funktion

Hi!

Ich muss mehrere Abfragen an eine MySQL-Datenbank senden. Das was ich dann zurückbekomme muss ich an mehrere gleich aufgebaute Objekte anwenden. Dazu laufe ich die Objekte in einer Schleife durch und mache für jedes ein SendAndLoad mit der php-Datei die auf die Datenbank zugfreift.

SendAndLoad ist aber so weit ich weis ja zeitversetzt. In der Callbackfunktion will ich jetzt die zurückbekommenen Daten an meine Objekte anpassen. Dazu muss ich mir aber irgendwo den Index des Objekts merken.
SendAndLoad wird ja für alle Objekte dank der Schleife sofort hintereinander aufgerufen ohne dass auf einen Rückgabewert o.Ä. gewartet wird. Kann ich also der Callback-Funktion irgendwie einen zusätzlichen Parameter mitgeben damit sie weiss welches Objekt sie anpassen soll? Oder wie würde ihr das machen?

ActionScript:
  1. function geladen(erfolgreich) {//Callback-Funktion .... hier würde ich gerne irgendwie was übergeben
  2.         if(erfolgreich) {
  3.              trace("this="+this);
  4.        }
  5.         else {
  6.                 trace("Fehler beim Laden");
  7.         }
  8. }
  9. for(i=0;i<elems.length;i++)
  10. {
  11.    LadeObj = new LoadVars();
  12.    LadeObj.onLoad = geladen;
  13.    LadeObj.sendAndLoad("query.php?bereich="+elems[i],LadeObj,"POST");
  14. }


thx,
m0m0
_m0m0_ ist offline   Mit Zitat antworten
Alt 17-03-2005, 12:45   #2 (permalink)
mod_rewrite
 
Benutzerbild von sonar
 
Registriert seit: Feb 2003
Ort: München
Beiträge: 15.621
Also prinzipiell würde ich das Laden der Daten anders angehen:
ActionScript:
  1. var i = 0;
  2. var senderLV = new LoadVars();
  3. var receiverLV = new LoadVars();
  4. receiverLV.onLoad = function(pIsLoaded) {
  5.   if(pIsLoaded == true) {
  6.     // Hier die Verarbeitung der Rueckgabe vom PHP...
  7.     // machWasMitDenDaten();
  8.     if(++i < elems.length) {
  9.       senderLV.sendAndLoad("query.php?bereich=" + elems[i], receiverLV);
  10.     } else {
  11.       trace("Daten fertig geladen.");
  12.     }
  13.   } else {
  14.     trace("Fehler beim Laden!");
  15.   }
  16. };
  17. senderLV.sendAndLoad("query.php?bereich=" + elems[i], receiverLV);
Dann hättest Sender und Empfänger schon mal getrennt - das empfiehlt übrigens auch Professor Moock...
Nur das mit den Objekten, auf die die Daten verteilt werden sollen, hab ich nicht ganz verstanden... sowas könntest aber prinzipiell ja auch innerhalb des onLoad bewerkstelligen, oder...? Ansonsten mal genauere Infos...
__________________
RTFM
Wie man Fragen richtig stellt.

Achim Bindannmalweg

Money makes the world go round, fear makes it turn much faster.
(New Model Army)

Geändert von sonar (17-03-2005 um 16:55 Uhr)
sonar ist offline   Mit Zitat antworten
Alt 17-03-2005, 16:46   #3 (permalink)
n00b
 
Registriert seit: Dec 2004
Beiträge: 94
Hi!

Ich habe folgendes Problem: Wenn ich die Anfrage an die Datenbank über das PHP-Skript mache bleibt er ja im AS-Code nicht stehen. Wenn also die Antwort der PHP-Datei zurückkommt hat er die anderen Anfragen auch schon gesendet und weiß jetzt nicht zu welcher Anfrage die Antwort gehört. Ich kriege jetzt von der PHP-Datei einen String zurück (und das eben nicht nur einmal) den ich dann parse und nur bestimmte Elemente anzeige .. je nach dem was eben zurückkommt. Das Ganze muss ich aber für verschiedene Elemente machen (deshalb auch verschiedene Anfragen). Wie kann ich das also realieren, dass er die Antwort mit der richtigen Anfrage assoziiert?


thx,
m0m0
_m0m0_ ist offline   Mit Zitat antworten
Alt 17-03-2005, 16:50   #4 (permalink)
a.k.a maddin79
 
Benutzerbild von madflanderz
 
Registriert seit: Jul 2003
Ort: berlin f-hain
Beiträge: 1.693
Zitat:
Zitat von _m0m0_
Hi!

Ich habe folgendes Problem: Wenn ich die Anfrage an die Datenbank über das PHP-Skript mache bleibt er ja im AS-Code nicht stehen. Wenn also die Antwort der PHP-Datei zurückkommt hat er die anderen Anfragen auch schon gesendet und weiß jetzt nicht zu welcher Anfrage die Antwort gehört.
deshalb solltest du dann auch für jede anfrage ein eigenes empfangenes LV object erstellen, dann kommxte auch nicht durcheinander.
__________________
www.madflanderz.de

ø,¸¸,ø¤º°`°º¤ø,¸¸,ø¤º°` _ addicted to bass _ `°º¤ø,¸¸,ø¤º°`°º¤ø,¸¸,ø
madflanderz ist offline   Mit Zitat antworten
Alt 17-03-2005, 16:55   #5 (permalink)
mod_rewrite
 
Benutzerbild von sonar
 
Registriert seit: Feb 2003
Ort: München
Beiträge: 15.621
Zitat:
Zitat von _m0m0_
Wenn also die Antwort der PHP-Datei zurückkommt hat er die anderen Anfragen auch schon gesendet
Nö, das is eben in meiner Version nicht so, wenn du die nochmal anschaust...
Erst wenn von PHP was zurückkommt, wird - solange wir noch nicht am Ende der elems-Liste angekommen sind - die nächste Ladeanweisung ausgeführt. D.h. du solltest realtiv gemütlich Zeit haben, deine Strings zu verwursten (z.B. in ein Array schubsen o.ä.)... Hab dir im code oben die "Eingriffsstelle" markiert!

@maddin: red hier nicht dazwischen
__________________
RTFM
Wie man Fragen richtig stellt.

Achim Bindannmalweg

Money makes the world go round, fear makes it turn much faster.
(New Model Army)

Geändert von sonar (17-03-2005 um 16:57 Uhr)
sonar ist offline   Mit Zitat antworten
Alt 17-03-2005, 18:24   #6 (permalink)
n00b
 
Registriert seit: Dec 2004
Beiträge: 94
Hi!

Ok, vielen Dank, hab schon verstanden

cya
m0m0
_m0m0_ ist offline   Mit Zitat antworten
Alt 18-03-2005, 19:31   #7 (permalink)
a.k.a maddin79
 
Benutzerbild von madflanderz
 
Registriert seit: Jul 2003
Ort: berlin f-hain
Beiträge: 1.693
Zitat:
Zitat von sonar
@maddin: red hier nicht dazwischen
ok, einen moment bitte ... ich lösch ma schnell mein account ....
__________________
www.madflanderz.de

ø,¸¸,ø¤º°`°º¤ø,¸¸,ø¤º°` _ addicted to bass _ `°º¤ø,¸¸,ø¤º°`°º¤ø,¸¸,ø
madflanderz ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 00:14 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele