AS3 - 动态创建一系列文本字段的最佳方法?

时间:2015-07-08 21:52:57

标签: arrays actionscript-3 text

我(成功)通过一个循环创建一个框的列,其中的内容是:

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;
}}

1 个答案:

答案 0 :(得分:1)

嗯,你没有在任何地方声明memberBoxText,所以我认为你通过flash builder手动添加它。您没有创建textField的新实例。请将此插入for循环: var memberTxt:TextField=new TextField(); currentTile.addChild(memberTxt); :)