Variable aus externer Datei einlesen und in Array übergeben
Hallo,
ich möchte eine Veriable, die ich aus einer externer Datei einlese in eine Array schreiben:
ActionScript:
1 2 3 4
stop();
vars = new LoadVars();
vars.load("hallowelt.txt");
Woerter = _root.vars.vokabeln.split(",");
Die Datei enthält übrigens folgenden Eintrag:
ActionScript:
1
&vokabeln=hans,gerd&
Das Einlesen funktioniert. Wenn ich mir die Var. vokaben in einem Textfeld ausgeben lasse, dann klappt das.
Nur leider bleibt das Array Woerter leer. Warum?
hi,
in actionscript 2 sollte man schon auf eine strikte typisierung achten:
ActionScript:
1
var woerter:Array;
vielleicht klappts dann auch mit dem zugriff....
und variablen sollte man immer klein schreiben und den camelCase anwenden.. ;-)lieber chips essen und danach voller zweifel sein, als voller zweifel chips essen...
danke erstmal. Das geht ja fix bei euch!
Ich benutze übrigens die Version 2004MX.
Vielleicht erläutere ich mal mein Problem "etwas" ausführlicher:
Ich habe folgendes Array:
ActionScript:
1
woerter = ["garden","house"];
Dieses Array will ich eben aus einer externen Datei "befüllen", damit man später nicht mehr ans AS ran muss.
Vielleicht ist mein Anstatz von oben ganz falsch.
dein ansatz ist nicht falsch.
es ist vielleicht effektiver anstelle einer text-datei eine XML-datei zu verwenden.
aber das kannst du dir irgendwann mal anschauen/überlegen.
zu deiner frage:
warum klappt das nicht
ActionScript:
1
trace(Woerter[1]);
wenn du das in der onLoad-funktion machst, klappt es (natürlich nur, wenn dein Array auch mindestens 2 einträge hat).
wenn du es ausserhalb dieser funktion abfragst, solltest du sicher sein, dass die datei auch wirklich schon da ist.
falls du mit der zeitleiste arbeitest, ginge es z.b. so:
in Frame 1:
ActionScript:
1 2 3 4 5
var woerter:Array = new Array();
vars.onLoad = function() {
woerter = _root.vars.vokabeln.split(",");
_root.gotoAndStop(2); //Array befüllt, alles klar, also weiter
};
in Frame 2 kannst du dann den (befüllten) Array verwenden/abfragen. denn hier kommt dein flash ja erst an, wenn die onLoad-funktion aufgerufen wurde.