createTextField() == kissMyAss()

TeCe

Erfahrenes Mitglied
Hi...will mein snakegame um eine top10 bereichern...
Das Abfragen und Aktualisieren meiner mysql-Datenbank klappt schon ganz gut, die ganzen scores in ein array zu packen auch...aber wenn ich jetzt mit meiner kleinen Funktion die Liste ausgeben lassen will, übernimmt er überhaupt keine Werte für die Textfelder die ich zu erstellen versuche :-|


PHP:
topscore = new Array(1,2,3,4,5,6,7,8,9,10);//Array das von PHP übergeben wird
function showscore() {
	skoa = new TextFormat();
	skoa.align = "left";
	skoa.size = 16;
	for (nr=1; nr<11; nr++) {
		score = "score"+nr;
		_root.createTextField(score,340+nr,0,20*(nr-1),1,1);
		score.style = "dynamic";
		score.border = true;
		score.autoSize = true;
		score.text = topscore[nr];
		score.setNewTextFormat(format);
	}
}

Jemand´ne Idee?
 
Zuletzt bearbeitet:
Hallo TeCe,

Hier die Lösung:

PHP:
topscore = new Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
//Array das von PHP übergeben wird
function showscore() {
	skoa = new TextFormat();
	skoa.align = "left";
	skoa.size = 16;
	for (nr = 0; nr < 10; nr++) {
		score = "score" + nr;
		_root.createTextField(score, 340 + nr, 0, 20 * (nr - 1), 1, 1);
		this[score].style = "dynamic";
		this[score].border = true;
		this[score].autoSize = true;
		this[score].text = topscore[nr];
		this[score].setTextFormat(skoa);
	}
}
showscore();

In Flash ist immer auf eine saubere Instanzierung zu achten!
Und der Vorschlag von Skyla mit setTextFormat ist goldwert.

Hinweis: Denk daran das die Array Indizierung vom Wert 0 ausgeht.
Daher hab ich die Laufvariable nr angepasst.

Liebe Grüsse
Matze K.
 
@Madokan:
Deine kleine Abwandlung funktioniert super!
Aber das mit dem Array war eigentlich anders geplant...
Ich hole das Array aus php raus und teiele die Werte in 2 Arrays auf(score, user) in den beiden Arrays sind dann die einzelnen Inhalte auf den Bezeichnern User1-10 und Score1-10...deshalb hab ich bei 1 angefangen(oder ist das jetzt trotzdem totaler Schwachsinn)?

@Skyla:
okay...du hast recht...hatte nur gesternMorgen im Übermüdeten Kopf bei FlashHilfe.de einen kleinen Thread auf die schnelle überflogen, wo es dann im Endeffekt hieß, lieber SetNewTextFormat() zu benutzen da sonst für die nächsten TextFieldInstanzen keine Änderungen vorgenommen würden...
Naja und der Titel ist dann im ebenso übermüdeten und vom gereizten Nacht um die Ohren schlagen entstanden...


Danke euch beiden!



////////////EDIT/////////


mist...doch noch nich ganz...wollte das ganze dann doch noch´n bißchen "professioneller"/übersichtlicher machen...momentan bewirkt´s aber das Gegenteil :)

PHP:
top10[1,2,3,4,5,6,7,8,9,10,ich,du,er,sie,es,wir,ihr,sie,euch,meiner];
function showscore() {
	createEmptyMovieClip( "scoreboard", 77 );
	with (scoreboard){
		skoa = new TextFormat();
		skoa.align = "left";
		skoa.size = 16;
		jusa = new TextFormat();
		jusa.align = "right";
		jusa.size = 16;
		for (nr = 0; nr < 10; nr++) {
			score = "score" + nr;
			user = "user" + nr;
			createTextField(score, 340 + nr, 0, 35 * (nr - 1), 1, 1);
			this[score].style = "dynamic";
			this[score].border = true;
			this[score].selectable = false;
			this[score].autoSize = true;
			this[score].text = top10[nr];
			this[score].setTextFormat(skoa);

			createTextField(user, 360 + nr, 200, 35 * (nr - 1), 1, 1);
			this[user].style = "dynamic";
			this[user].border = true;
			this[user].selectable = false;
			this[user].autoSize = true;
			this[user].text = top10[10+nr];
			this[user].setTextFormat(jusa);
		}
	}
}

^warum will des nisch?^(Textfelder kriegen wieder nix von den Variablen ab!)


/////REedit/////
okay.... _root.createTextField :)
...sollte besser mal wieder ins Bett - eindeutig zu wenig schlaf!
 
Zuletzt bearbeitet:
Ich krieg´n Kind!
Sollte mich einfach stillschweigend endlich schlafen legen :)
Aber ich will(ei verdammisch nochmal) wissen warum die HighScoreListe im TestMode mit Debugger läuft, aber nicht auf der Website!
Und den doofen RemoteDebugger krieg ich auch nicht zum laufen :-|
 
Zurück