PHP-Array in Flash laden

Hi,

arrgh - warum müsst Ihr immer die Hauptzeitleiste für komplexe Navigationen misbrauchen? Da findet man ja so gut wie garnichts wieder. :(

Jedenfalls: Du hast den Code nicht auf einer Objektzeitleiste, sondern auf der Instanz in einem on(data)-Handler. Was sind das für Daten und würd der Handler überhaupt aufgerufen? Ich habe den Verdacht, dass das mit einem loadVariables an anderer Stelle zusammenhängt - verwende lieber ein LoadVars-Objekt und rufe die Funktion zum Laden der XML-Datei aus der LoadVars.onLoad-Funktion auf, wenn Du darauf angewiesen bist, auf diese Daten zu warten.

Gruß
.
 
Danke für die schnelle Bearbeitung, leider hakt es noch etwas.

arrgh - warum müsst Ihr immer die Hauptzeitleiste für komplexe Navigationen misbrauchen? Da findet man ja so gut wie garnichts wieder.
Ist mir auch aufgefallen, werde ich von nun an bessermachen.

Du hast den Code nicht auf einer Objektzeitleiste, sondern auf der Instanz in einem on(data)-Handler. Was sind das für Daten und würd der Handler überhaupt aufgerufen?
Es sind API-Ausgabedaten über den Loginstatus eines Users und über die Anzahl und Auflistung der ungelesenen Beiträge. Der Handler wird also aufgerufen.

Ich habe den Verdacht, dass das mit einem loadVariables an anderer Stelle zusammenhängt - verwende lieber ein LoadVars-Objekt [...]
Nicht mal bis dahin habe ich es richtig gebracht: Seit der Codeänderung ruft er den Handler nicht mehr auf und erkennt die Daten nicht richtig. Ich bitte deshalb erstmal um kurzen Blick, was hier falsch ist:
Code:
	_root.MClade_loginmeldung.load("http://www.bb-6.de/api.php?a=status",_root.MClade_loginmeldung);
	_root.MClade_onmeldung.load("http://www.bb-6.de/api.php?a=on",_root.MClade_onmeldung);
	_root.MClade_neumeldung.load("http://www.bb-6.de/api.php?a=neues",_root.MClade_neumeldung);
Die obigen URLs gehen bei dir nicht wie bei mir, da du bei dem Projekt nicht eingeloggt bist, aber die Daten werden dann schon ausgegeben. Auffällig ist, dass jetzt nur noch MClade_loginmeldung die Daten empfängt und verarbeiten kann, bei den beiden anderen Ziel-Movieclips kommen die Daten nun nicht mehr an.
[EDIT: ] Der Movieclip, in dem sich die oberen load-Anweisungen befinden, nennt sich 'API Reloaded'.
Ist leider alles verzwickt im Moment.

und rufe die Funktion zum Laden der XML-Datei aus der LoadVars.onLoad-Funktion auf, wenn Du darauf angewiesen bist, auf diese Daten zu warten
Mache ich dann danach, sobald die vorher noch funktionierenden Datenlesungen wieder gehen.
 
Zuletzt bearbeitet:
Code:
_root.MClade_loginmeldung.load("http://www.bb-6.de/api.php?a=status",_root.MClade_loginmeldung);
Was soll das sein? Was gibt die php-Datei zurück?

Wenn es sich bei MClade_loginmeldung um einen MovieClip handelt: Was soll die load-Aktion? Du kannst auf diese Weise keine Daten in einen MC laden. Clips und Bilder werden mit loadMovie geladen; Variablen mit dem loadVars-Objekt (oder ggf. mit loadVariables).

Gruß
.
 
Die PHP-Datei gibt ganz normal Variablen in der urlencodierten Form zurück (z.B. &titel=Hallo&ende=1).
Den Movieclip habe ich deshalb genommen, weil die Daten auch erst verarbeitet werden sollen, sobald sie da sind. Kann ich (anstatt dem lieber dann) mit LoadVars.onLoad prüfen, wann die Daten ankommen und die dann im gleichen AS-Frame verarbeiten? Wie muss ich diese Abfrage bauen? Eine Schleife, die nach dem Laden abbricht und die Aktion dann ausführt?

Lieben Gruß
 
Hi,

nein, das LoadVars-Objekt funktioniert genauso wie das XML-Objekt:
Code:
var lv = new LoadVars();

lv.onLoad = function(success) {
    if (success) {
        if (this.login == "ok") { // was auch immer Du bekommst ;)
            // hier dann das Laden der XML-Datei anstossen:
            _root.xml_xlip.ladeXML();
        } else {
            trace("falscher wert");
        }
    } else {
        trace("Laden fehlgeschlagen");
    }
}

lv.load("mein_php_script.php?id=foobar");

Gruß
.
 
Fein, das Einbetten hat geklappt, ich kann jetzt auf die einzelnen MCs verzichten.
Nur bei der XML-Auslese selbst happert es noch leicht:
Code:
var xm = new XML();
xm.ignoreWhite = true;
xm.onLoad = function() {
	parse(this.firstChild.childNodes);
};
xm.load("http://www.gregor-kempny.de/xml.xml");
function parse(obj) {
	trace("Initialisierung parse - Prädikat gut"); // keine Ausgabe
	for (var i = 0; i<obj.length; i++) {
		var k = obj[i].attributes.key;
		var v = obj[i].attributes.val;
		titel[k] = v;
	}
}
_root.xml_xlip.ladeXML(); // ?
Habe deine Stichsätze dazu durchgekaut, komme aber trotzdem nicht voran - ich weiß nicht, was falsch ist bzw. wie ich nun an das Array komme.
 
Hi,

sogar ich erhalte von meinem lokalen Rechner aus mit exakt diesem Code die Ausbabe "Initialisierung parse - Prädikat gut". ;) - der Fehler muss also woanders stecken - wahrscheinlich wird der gesamte Codeblock bei Dir überhaupt nicht ausgeführt. Setz mal irgendeine Trace-Aktion dort hinein, z.B. vor die load-Aktion.

Die Zeile
Code:
_root.xml_xlip.ladeXML();
gehört da übrigens nicht hin: Das war nur ein Beispiel, wie Du von woanders aus, das Laden anstossen könntest - die Funktion ladeXML würde (wenn Du sie anlegst) z.B. xm.load() ausführen.

Gruß
.
 
Habe jetzt etwas herumgetract, mit dem Ergebnis:
Code:
var xm = new XML();
xm.ignoreWhite = true;
xm.onLoad = function() {
	parse(this.firstChild.childNodes);
	trace("OnLoad: "+this.firstChild.childNodes); // Ausgabe: OnLoad: undefined
};
xm.load("http://www.gregor-kempny.de/xml.xml");
trace("Zwischentrace ist perfekt"); // wird ausgegeben
function parse(obj) {
	trace("Objekt: "+obj); // Keine Ausgabe
	for (var i = 0; i<obj.length; i++) {
		var k = obj[i].attributes.key;
		var v = obj[i].attributes.val;
		titel[k] = v;
	}
}
 
Hi,

abgesehen davon, dass die XML-Datei fehlerhaft ist (Status-Rückgabe: -6 Ein XML-Element war ungültig.) und nicht geparst werden kann, fällt mir im Moment auch nichts weiter ein.

Was passiert, wenn Du eine leere Flashdatei erzeugt, die nur meinen Codeblock enthält?

Gruß
.
 

Neue Beiträge

Zurück