Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 24-02-2006, 13:59   #1 (permalink)
Minispiele-Bäcker
 
Benutzerbild von Derm
 
Registriert seit: Jul 2004
Ort: In Dermstadt
Beiträge: 64
Unhappy return in eventhandler

Hier, ich hab da mal en problem. meine funktion soll einen fehlercode zurückgeben, was nich klappt. Ich gehe davon aus, dass es daran liegt, dass der return befehl erst onLoad abgehandelt wird, was für die rückgabe der funktion zu spät ist. dennoch brauch ich eine lokale variable. die funktion sieht so aus:

Code:
var myVar:LoadVars = new LoadVars();
_global.php = function(php_url, daten, daten_struktur) {
	if (daten != "") {
		_root.myVar.daten = daten;
		_root.myVar.daten_struktur = daten_struktur;
		_root.myVar.onLoad = function(loaded:Boolean) {
			if (loaded) {
				_root.fehler = _root.myVar.fehler;
				_root.daten_struktur = _root.myVar.daten_struktur;
				if (Number(_root.myVar.fehler) == 0) {
					_root.haufen = _root.myVar.haufen;
					_root.u = _root.myVar.u;
					//hier hätte ich gerne was, wie return _root.fehler   :)
				} else {
//					_root.fehler_txt=_root.errors[Number(_root.fehler)];
					//_root.gotoAndPlay("errlog");
					return "wort";//_root.fehler;
				}
			}
		};
//		php_url = "http://alice.lan.pheise.de/flauschies/" + php_url;
		php_url = "http://localhost/eigene%20software/legoburg/" + php_url;
		_root.myVar.sendAndLoad(php_url, _root.myVar, "POST");
	}else{_root.fehler_txt=_root.errors[2];} //Fehlercode für fehlende daten
};

der aufruf:

Code:
if(php("actions/aktivierung.php", _root.email, "0")==0){gotoAndStop("aktivierung");}
kann keine globalen variablen benutzen, da die funktion öfter aufgerufen wird und sich so selbst überschriebe. Wenn es eine alternative zum return in diesem falle gibt, wäre ich sehr dankbar.
Derm ist offline   Mit Zitat antworten
Alt 24-02-2006, 16:51   #2 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Zitat:
if (Number(_root.myVar.fehler) == 0) {
Der Response eines onLoadCallbacks einer LoadVars-Klasse ist immer ein String. Deshalb solltest du entweder die Variable casten, bzw. in eine Zahl umwandeln, oder auf einen String prüfen (...== "0").
  Mit Zitat antworten
Alt 26-02-2006, 14:35   #3 (permalink)
Minispiele-Bäcker
 
Benutzerbild von Derm
 
Registriert seit: Jul 2004
Ort: In Dermstadt
Beiträge: 64
Das habe ich auch schon probiert, aber daran liegt es leider nicht. Der Wert der zurückkommt bleibt "undefined". Ich glaube, weil er zu dem Zeitpunkt des returns noch nicht bekannt ist. Trotzdem danke für die antwort
Derm ist offline   Mit Zitat antworten
Alt 26-02-2006, 15:15   #4 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
ungetestet:
Code:
_global.php = function(php_url, daten, daten_struktur) {
	this.fehlerTxt = [];
	this.fehlerTxt[0] = "Keine Verbindung zum Server.";
	this.fehlerTxt[1] = "Keine Daten erhalten.";
	this.fehlerTxt[2] = "Fehlermeldung von PHP.";
	//
	this.fFehler = function(nr) {
		_root.fehler = Number(nr);
		_root.fehler_txt = this.fehlerTxt[nr];
		_root.gotoAndPlay("errlog");
	};
	this.fDatenOK = function(daten) {
		_root.haufen = daten.haufen;
		_root.u = daten.u;
		_root.fehler = 0;
	};
	//
	if (!daten) {
		this.fFehler(1);
	} else {
		this.myVar = new LoadVars();
		this.myVar.daten = daten;
		this.myVar.daten_struktur = daten_struktur;
		php_url = "http://localhost/eigene%20software/legoburg/"+php_url;
		this.myVar.sendAndLoad(php_url, _root.myVar, "POST");
		//
		// wird später ausgeführt
		this.myVar.onLoad = function(loaded) {
			if (!loaded) {
				// übertragungsfehler
				_global.php.fFehler(0);
			} else {
				if (this.fehler == undefined || !this.fehler) {
					// keine fehlernummer von php
					_global.php.fDatenOK(this);
				} else {
					// fehlernummer von php
					_global.php.fFehler(this.fehler);
				}
			}
		};
	}
};
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib 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 03:19 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele