我(成功)通过一个循环创建一个框的列,其中的内容是:
for(var i=0; i < MAX_ROWS + 1; i++){
for(var o=0; o < MAX_COLS + 1; o++){
var currentTile:MemberBox = new MemberBox();
currentTile.x = i*150;
currentTile.y = o*25;
currentTile.name = "b"+o;
memberBox.addChild(currentTile);
}}
现在我需要为每个框添加一个文本字段,稍后将使用数组中的数据填充该字段。我尝试将每个文本字段添加到for循环中的数组中,然后从数组中调用,但是textfields仍然都具有相同的名称,因此只有最后一个调用实际上有效...
这就是我所拥有的 - 它几乎可以满足我的需要,但它只会在最后创建的框中添加文字。
var txtArray:Array = new Array();
for(var i=0; i < MAX_ROWS + 1; i++){
for(var o=0; o < MAX_COLS + 1; o++){
var currentTile:MemberBox = new MemberBox();
currentTile.x = i*150;
currentTile.y = o*25;
currentTile.name = "b"+o;
memberBox.addChild(currentTile);
currentTile.addChild(memberBoxText);
memberBoxText.width = 150;
memberBoxText.height = 25;
txtArray[o] = memberBoxText;
txtArray[o].text = "test"+o;
}}
答案 0 :(得分:1)
嗯,你没有在任何地方声明memberBoxText,所以我认为你通过flash builder手动添加它。您没有创建textField的新实例。请将此插入for循环:
var memberTxt:TextField=new TextField(); currentTile.addChild(memberTxt);
:)