Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 11-04-2006, 10:49   #1 (permalink)
Neuer User
 
Benutzerbild von psboy
 
Registriert seit: Apr 2006
Beiträge: 45
onData

Hallo!

Ich habe ein Problem mit dem folgenden Actionscript:

Code:
function checkLogin() {
	var lv:LoadVars = new LoadVars();
	var getData:LoadVars = new LoadVars();
	
	getData.onData = function(input):Void {
		trace(input);
	}
	lv.action="checkCookie";
	lv.sendAndLoad("script.php", getData, "POST");		
}
Das Script an sich funzt wunderbar, nur möchte ich die Daten synchron zurückbekommen. Sprich sowas in der Richtung:

Code:
function checkLogin():String {
...
return input;
}
Nur leider klappt das nicht. Ich denke, das liegt daran, daß "sendAndLoad" nicht synchron arbeitet sondern das Event onData auslöst, wenn die Daten eingetrudelt sind. Wie kann ich das umgehen? Würde die Daten gerne per return-Wert zurückbekommen und nicht irgendwann zur Laufzeit, wenn das Script meint, sie fertig geladen zu haben.

Hoffe, Ihr versteht und könnt mir helfen

Vielen Dank und schöne Grüße,
PSBoy
psboy ist offline   Mit Zitat antworten
Alt 11-04-2006, 11:54   #2 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Zitat:
Zitat von psboy
...wenn das Script meint, sie fertig geladen zu haben.
Hallo und willkommen im Forum!

Nicht das Script "meint" die Daten geladen zu haben, sondern die sind erst dann geladen, wenn onData() aufgerufen wird.
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 11-04-2006, 14:22   #3 (permalink)
Neuer User
 
Benutzerbild von psboy
 
Registriert seit: Apr 2006
Beiträge: 45
Danke

Aso. Das heisst also, wenn ich den onData Block einfach 3 Zeilen tiefer setze, funzt es so wie ich es will?

*ausprobier und nachher wieder meld*

Gruß,
PSBoy
psboy ist offline   Mit Zitat antworten
Alt 11-04-2006, 15:32   #4 (permalink)
Neuer User
 
Benutzerbild von psboy
 
Registriert seit: Apr 2006
Beiträge: 45
Hm - also so ganz hab ich das noch nicht geschnallt ... vielleicht kannst Du mir am konkreten Beispiel mit einem Tip weiterhelfen? Habe die Funktion nun so umgebaut:

Code:
function checkLogin():String {
	var lv:LoadVars = new LoadVars();
	var getData:LoadVars = new LoadVars();
	var ret;
	
	lv.sendAndLoad("script.php", getData, "POST");		
	
	getData.onData = function(input):Void {
	   ret=input;
	}
	return ret;
}

var check = checkLogin();
Ein "trace(check)" liefert mir immer "undefined" zurück, was aber falsch ist. Das Script "script.php" liefert auf jeden Fall etwas zurück, das != "undefined" ist ...

Wo ist mein Denk-/Scriptfehler? Hoffe, Du/Ihr könnt mir helfen, bin ein wenig verzweifelt ...

Vielen Dank,
PSBoy

P.S. Warum nehme ich eigenltich nicht "loadVariables"? Macht das einen Unterschied zu "SendAndLoad" - außer, daß ich die Variablen per GET sende?
__________________
Zerfrettelter Grunzwanzling

Geändert von psboy (11-04-2006 um 15:51 Uhr)
psboy ist offline   Mit Zitat antworten
Alt 11-04-2006, 16:00   #5 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
So wie du dir das vorstellst wird das nix. Ruf halt eine Funktion zum checken im onData()-Handler auf.
Und loadVariabels nimmst du nicht, weil's erstens mal veraltet und zweitens schaiße zu handhaben ist.
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 11-04-2006, 16:11   #6 (permalink)
Neuer User
 
Benutzerbild von psboy
 
Registriert seit: Apr 2006
Beiträge: 45
Ok, dann nehme ich nicht loadVariables

Aber den Rest kapier ich nicht ... was muss ich wie zum Checken aufrufen? Du meinst, so ne Art Interval, das alle 1/10 s nachschaut, ob die Daten angekommen sind? Sowas find ich per se doof.

Gibts da keine synchrone Variante?

Serz,
PSBoy
__________________
Zerfrettelter Grunzwanzling
psboy ist offline   Mit Zitat antworten
Alt 11-04-2006, 16:20   #7 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Nein - nix da mit Intervall oder so 'nem Krams... Sowas in der Art:
PHP-Code:
function checkLogin():Void {
    var 
lv:LoadVars = new LoadVars();
    var 
getData:LoadVars = new LoadVars();
    
lv.sendAndLoad("script.php"getData"POST");
    
getData.onData = function(input) {
        
pruefen(input);
    };
}
checkLogin();
//
function pruefen(txt) {
    if (
txt == "Ok") {
        
trace("alles klar")
        
//machWas
    
}
    else{
        
//format c:
        
}

__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 11-04-2006, 16:33   #8 (permalink)
Neuer User
 
Benutzerbild von psboy
 
Registriert seit: Apr 2006
Beiträge: 45
Aaaaaahsooo .... *ausprobier*

Hab grad noch das Event OnLoad entdeckt. Vielleicht nehme ich das?! Scheint mir fast mehr Sinn zu machen (zumal es zumindest namentlich einen synchroneren Eindruck auf mich macht ).

Tausend Dank jedenfalls für Dein Hilfe! Hast mir sehr geholfen *verbeug*

Cheerio,
PSBoy
__________________
Zerfrettelter Grunzwanzling
psboy 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 23:16 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele