19. marts 2008 - 11:41
Der er
2 kommentarer
variabler fra php til dynamisk text felter
jeg henter 21 variabler fra php, virker! (highscore)
men jeg kan sku ikke finde ud af at få dem udskrevet til dynamiske text felter....
Jeg kan jo bare lave det hardkodet men, det bliver noget mega langt kode og det er jo ikke rart...
stop();
var loadVars_in:LoadVars = new LoadVars();
loadVars_in.load("hent_highscore.php");
loadVars_in.onLoad = function(success) {
if (success) {
// virker fint
_root.antal_txt.text = loadVars_in["antal"];
_root.player1 = loadVars_in["player1"];
_root.player2 = loadVars_in["player2"];
_root.player3 = loadVars_in["player3"];
_root.player4 = loadVars_in["player4"];
_root.player5 = loadVars_in["player5"];
_root.player6 = loadVars_in["player6"];
_root.player7 = loadVars_in["player7"];
_root.player8 = loadVars_in["player8"];
_root.player9 = loadVars_in["player9"];
_root.player10 = loadVars_in["player10"];
_root.score1 = loadVars_in["score1"];
_root.score2 = loadVars_in["score2"];
_root.score3 = loadVars_in["score3"];
_root.score4 = loadVars_in["score4"];
_root.score5 = loadVars_in["score5"];
_root.score6 = loadVars_in["score6"];
_root.score7 = loadVars_in["score7"];
_root.score8 = loadVars_in["score8"];
_root.score9 = loadVars_in["score9"];
_root.score10 = loadVars_in["score10"];
// de 2 her bliver skrevet
_root.sum_txt.text = _root.score1;
_root.player_txt.text = _root.player1;
//her skal variabler skrives ud i dynamiske tekst felter
//men der sker ikke en shit
for (i=1; i<11; i++) {
var ycor = (30*i)+50;
this.createTextField("player_txt"+i,i,50,ycor,200,30);
this["player_txt"+i].multiline = false;
this["player_txt"+i].wordWrap = false;
this["player_txt"+i].border = true;
var myformat:TextFormat = new TextFormat();
myformat.size = 20;
this["player_txt"+i].text = this["player"+i];
this["player_txt"+i].setTextFormat(myformat);
}
} else {
//notify of failure
_root.antal_txt.text = "Error i loading af databasen!";
}
};
19. marts 2008 - 16:49
#1
Du skal lære at bruge løkker og tabs noget bedre. Så bliver koden kortere og pænere:
stop();
var loadVars_in:LoadVars = new LoadVars();
loadVars_in.load("hent_highscore.php");
loadVars_in.onLoad = function(success) {
if (success) {
_root.antal_txt.text = loadVars_in["antal"];
var d:Array = ["player", "score"];
for(var i:Number = 0; i < d.length; i++) {
for(var j:Number = 1; j <= 10; j++) {
this[d[i] + j] = loadVars_in[d[i] + j];
}
}
_root.sum_txt.text = this.score1;
_root.player_txt.text = this.player1;
for (var i:Number = 1; i < 11; i++) {
var ycor:Number = (30 * i) + 50;
this.createTextField("player_txt" + i, i, 50, ycor, 200, 30);
this["player_txt" + i].multiline = false;
this["player_txt" + i].wordWrap = false;
this["player_txt" + i].border = true;
var myformat:TextFormat = new TextFormat();
myformat.size = 20;
this["player_txt" + i].text = this["player" + i];
this["player_txt" + i].setTextFormat(myformat);
}
} else {
_root.antal_txt.text = "Error i loading af databasen!";
}
}
Hey! Nu blev det pludseligt til at overskue ;)
Og så får du lige en lille eksperten.dk-lektion: denne hjemmesides slogan er "hjælp til selvhjælp." Vi hjælper folk, så de kan hjælpe sig selv. Vi laver ikke folks arbejde. Så nu vil jeg fortælle dig lidt om, hvordan du selv kan teste din kode igennem. Dette er hurtigst og nemmest - og den mest pointvenlige.
1. Funktionen, der kan løse alle problemer, hedder trace. Prop en trace ind alle de steder, hvor du har problemer eller måske problemer. Sådan kunne det se ud:
stop();
var loadVars_in:LoadVars = new LoadVars();
loadVars_in.load("hent_highscore.php");
loadVars_in.onLoad = function(success) {
if (success) {
trace("Hentes mine data overhovedet korrekt?");
trace(loadVars_in);
_root.antal_txt.text = loadVars_in["antal"];
var d:Array = ["player", "score"];
for(var i:Number = 0; i < d.length; i++) {
for(var j:Number = 1; j <= 10; j++) {
trace("Nu sættes this[" + d[i] + j.toString() + "] til " + loadVars_in[d[i] + j]);
this[d[i] + j] = loadVars_in[d[i] + j];
}
}
_root.sum_txt.text = this.score1;
_root.player_txt.text = this.player1;
for (var i:Number = 1; i < 11; i++) {
var ycor:Number = (30 * i) + 50;
this.createTextField("player_txt" + i, i, 50, ycor, 200, 30);
this["player_txt" + i].multiline = false;
this["player_txt" + i].wordWrap = false;
this["player_txt" + i].border = true;
var myformat:TextFormat = new TextFormat();
myformat.size = 20;
trace("Nu har jeg lavet et tekstfelt. Hvad bliver der skrevet til tekstfeltet?");
trace(this["player" + i]);
this["player_txt" + i].text = this["player" + i];
this["player_txt" + i].setTextFormat(myformat);
}
} else {
_root.antal_txt.text = "Error i loading af databasen!";
}
}
Så kan du følge din kode hele vejen igennem for at finde fejlen. Og når du har fundet fejlen, kan du få hjælp til, hvad du skal gøre.
22. april 2008 - 15:56
#2
undskyld jeg var lige væk...
Det er et utroligt flot svar, jeg har ikke testet det endnu men smid du bare et svar, min ven