-
Code:
createLabels(["username", "firstname", "lastname"]);
function createLabels(labels){
for(i = 0; i < labels.length; i++){
trace(labels);
}
}
Why does the trace return:
username,firstname,lastname
username,firstname,lastname
username,firstname,lastname
I want it to return:
username
firstname
lastname
Can someone tell me how to fix the code to do that?
-
This is because you trace the whole array out:
You will need to give what element to show. To do that we use [] after the arrayname:
Code:
createLabels(["username", "firstname", "lastname"]);
function createLabels(labels)
{
for(i = 0; i < labels.length; i++){
trace(labels[ i ]);
}
}
/Mirandir
-
got it.
Thanks, I think I need some sleep ;-)
-
Code:
createLabels(["username", "firstname", "lastname"],122,70,200,17,50);
function createLabels(labels,startX,startY,fieldWidth,fieldHeight,verticalY){
var level=3;
for(i=0; i<labels.length; i++){
// trace(labels[i]);
this.createTextField(label[i]+"_label",level,startX,startY + verticalY,fieldWidth,fieldHeight);
this.labels[i]+"_label".text = label[i];
level=level+1
verticalY = verticalY + verticalY;
}
}
I can't get this to work, but I am trying to dynamically create a series of textfields with this code. If you see the problem, please let me know. I am getting an error:
Scene=Scene 1, Layer=actions, Frame=3: Line 31: Left side of assignment operator must be variable or property.
this.labels[i]+"_label".text = label[i];
-
Looks to me first off you have missed part of your FOR loop
Can you post the fla anywhere?
-
Code:
function createLabels(labels, startX, startY, fieldWidth, fieldHeight, verticalY) {
var level = 3;
for (i = 0; i < labels.length; i++) {
this.createTextField(label[i] + "_label", level, startX, startY + verticalY, fieldWidth, fieldHeight);
this[labels[i] + "_label"].text = label[i];
level++;
verticalY *= 2;
}
}
createLabels(["username", "firstname", "lastname"], 122, 70, 200, 17, 50);
-
I think below's what you want,
MM
Code:
function createLabels(labels, startX, startY, fieldWidth, fieldHeight, verticalY) {
var level = 3;
for (i = 0; i < labels.length; i++) {
verticalY1 += verticalY;
this.createTextField(labels + "_label", level, startX, startY + verticalY1, fieldWidth, fieldHeight);
this[labels[ i ] + "_label"].text = labels[ i ];
//this[labels[ i ] + "_label"].border = true;
level++;
}
}
createLabels(["username", "firstname", "lastname"], 122, 70, 200, 17, 50);
-
Or after a brutal shortage all that remains is a for loop :
Code:
createLabels(["username", "firstname", "lastname"],122,70,200,17,50);
function createLabels(labels,startX,startY,fieldWidth,fieldHeight,verticalY)
{
for(i=0; i < labels.length; i++)
{
this.createTextField(labels[ i ]+ "_label", 3 + i, startX, startY += verticalY, fieldWidth, fieldHeight);
this[labels[ i ]+ "_label"].text = labels[ i ];
}
}
I've tested the code and it works. Let me know if there are any questions.
/Mirandir
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|