loadVars()...

slator

Grünschnabel
Hallo ich bin ein Flash Neuling und hab ein Problem mit loadVars().

Irgendwie kann ich keine Daten aus einem txt file laden. Ich habe aber keine Ahnung warum nicht.

Hier mein Code:



on(click){
var myLoad:LoadVars = new LoadVars();
myLoad.load("vars.txt",_root.myLoad,"POST");

var test:String = this.myLoad.name;

trace(test)
}


Kann mir vielleicht jemand helfen und sagen, was am Code falsch ist?
 
Ungetestet:

PHP:
on(click){
var myLoad = new LoadVars();
myLoad.load("vars.txt");

var test = this.myLoad.name;

trace(test)
}
Bei der AS Syntax musst du den Typ deiner Variable nicht vor dem Gleichheitszeichen angeben, entweder du definierst es wie oben durch den Verweis auf ein Objekt (hier loadVars(); ), oder Flash tut dies für dich automatisch.

In der Textdatei muss dann mindestens das hier stehen:

&name=deinName


sancho
 
Irgendwie funktioniert das nicht...

Mein file sieht folgendermassen aus:

&name=deinName

und liegt im selben Verzeichniss wie die swf Datei.

Hab den Code mal rein kopiert. In der Ausgabe erscheint aber immer noch "undefined".
 
Ist ja klar.
Wenn du dir deinen Code mal anschaust wirst du merken, dass du sofort nach dem Befehl, die Textdatei zu lesen den befehl zur Ausgabe gibst.
Diese Befehle werden so schnell hintereinander ausgeführt, wie es der Rechner halt gerade zulässt. Leider hast du dabei deine Festplatte vergessen, die ist nämlich lange nicht so schnell. Heisst du gibst zwar den korrekten Befehl zum Einlesen, willst aber schon wieder Ausgeben, bevor auch überhaupt zu Ende gelesen wurde. Das Ganze kann aber recht leicht umgangen werden:

Code:
lv = new LoadVars ();
lv.onLoad = function () {
_root.name=this.name;
// Weitere Aktionen
};
lv.load ("datei.txt");

Damit wird erst wenn die Daten aus der Datei fertig geladen sind eine Reihe bestimmter Befehle ausgeführt.
Sollte helfen...

Greetz,
Killy
 
@Killkrog

Kann das wirklich sein, dass die Datei von Festplatte zu langsam geladen wird?

Ich hatte am Anfang meiner Flash-Laufbahn den selben Fehler gemacht - und zuerst nicht bemerkt, da die Daten lokal immer sofort erschienen.
Sogar online (über DSL) kamen (auch längere) Textdateien meistens schnell genug an, um ohne onLoad-Handler angezeigt zu werden. Nur alle 3-4 mal kamen die Daten eben nicht, was mich dann auf den Fehler brachte...

Natürlich hast Du mit Deinem Post 100% recht - mich wundert nur, dass die Festplatte bei slator im Vergleich zur Rechenleistung (bzw. Framerate) so langsam ist ... weshalb ich möglicherweise noch einen anderen unentdeckten Fehler in seiner Datei vermute.

Na ja, wir werden sehen.

Grüße
 
Jo, ist so. Wenn du dich selbst überzeugen willst, probier einfach mal deine methodeund dann meine aus. Wirst sehen, bei mir wird das sofort angezeigt ;)
 
@Killkrog

Das habe ich selbstverständlich - da ich wie gesagt ebenfalls das loadVars-Objekt mit onLoad abfrage.
Allerdings schienen sowohl meine Festplatte als auch mein DSL-Anschluss schnell genug gewesen zu sein, um z.B. die Konstruktion:
loadVariables("hallo.txt");
alert(hallo);
zu erlauben.
Deshalb hatte ich ja damals meinen Fehler nicht sofort bemerkt ;)

Gruß
 
Zurück