Textfeld inhalt durch *.as Datei steuern

TheEM

Mitglied
Hi.

Ich hab das Problem, das ich den Inhalt einer Textfeldes ändern will, ohne das ich Flash anhab.
Dazu bietet sich die #include "*.as" Anweisung ja förmlich an.
Nun aber folgendes Problem :
Die *.swf Datei ändert den Inhalt des Textfeldes nur, wenn ich die *.fla neu abspeichere, will aber das sich der Inhalt beim laden der *.swf ändert.

3 Layer, nur 1 Frame.
Auf dem Obersten Layer das AS : #include "settings.as"

|Layer 1 Frame 1 (AS #Include, Button)
|Layer 2 Frame 1(Bild)
|Layer 3 Frame 1(Textfeld)

in der settings.as steht folgendes :

_global.grusstext = "test";

dann hab ich noch auf dem Button das AS zum zuweisen der Grusstext Variable :

_root.output = grusstext;

Das Textfeld ist dyn, unselectable, hat die Variable "output" und ist Mehrzeilig.
Die erste Zeile hab ich durch

onClipEvent (load) {
_root.output="";
}
gelöscht.

Kurz : wie bekomm ich es hin das der Text beim laden der *.swf geupdatet wird, nicht beim neuspeichern der *.fla ?
 
Wie du selbst schon bemerkt hast, wird die *.as-Datei beim Veröffentlichen der swf includet und eignet sich somit nicht, um irgendetwas online zu verändert.

Um Textfeldinhalte unabhängig von der swf zu verändern kannst du txt-Dateien zur Laufzeit einladen. Schau dir dazu mal in der Actionscript-Referenz loadVars oder loadVariables bzw. loadVariablesNum an und schau mal auch hier in der Forumsuche danach. Bei konkreten Fragen dann nachfragen. :)

Gruß
Rena
 
Ok, nur noch eins : den Text läd er jetzt, nur ich brauch noch eine 2.te Variable, die eine Nummer beinhaltet um das Bild zu bestimmen.

Code:
var getaText = new LoadVars();

getaText.onLoad = function() {
	gruss_txt.text = this.gruss;
                     x = this.nummer;
};

getaText.load("gruss.txt");
front01_mc.gotoAndStop(x);
Wie kann ich die 2.te Variable aus der gruss.txt auslesen ?
So hab ich's probiert, ging nicht :
Code:
gruss=test
&nummer=3

hoffe das die Frage genau genug ist :-|
 
Ist sie. ;)

Das Problem ist, dass die onload-Funktion erst dann ausgeführt wird, wenn die Variablen tatsächlich geladen sind. Das dauert etwas, wenn auch kurz - und online noch länger.

Trotzdem werden aber die folgenden Befehle zwischenzeitlich ausgeführt, so auch dein front01_mc.gotoAndStop(x); Wobei eben für x noch kein Wert existiert.

Eine Lösung wäre, den Movieclip innerhalb der onLoad-Funktion zu steuern, dann wird auch dieser Befehl erst ausgeführt, wenn tatsächlich alle Werte vorhanden sind. Also ...
PHP:
getaText.onLoad = function() {
	gruss_txt.text = this.gruss;
	x = this.nummer;
	front01_mc.gotoAndStop(x);
};
Gruß
Rena
 
hey Fett, gute Idee, es funktioniert !
Danke Rena :)
Auf den Wissen glaub ich wert ich öfters zurückkommen :p

gute Nacht
greetz TheEM
 
Zurück