Flash AS3 addChild,文本字段仅显示最后添加的文本

Flash AS3 addChild,文本字段仅显示最后添加的文本,flash,actionscript,addchild,Flash,Actionscript,Addchild,我正在用actionscript构建一个Facebook客户端,我遇到了一个问题。我有一段代码: var loader:URLLoader = URLLoader(event.target); var feedResponse:String = (event.target.data); var object:Object = JSON.decode(feedResponse); //getting the data var fr

我正在用actionscript构建一个Facebook客户端,我遇到了一个问题。我有一段代码:

        var loader:URLLoader = URLLoader(event.target);

        var feedResponse:String = (event.target.data);
        var object:Object = JSON.decode(feedResponse); //getting the data

        var friendsStatus:Array = new Array(); //array for status'
        var friendsName:Array = new Array(); //array for names

        var startX:int = 120;
        var startY:int = 100;

        var myFormat:TextFormat = new TextFormat();
        myFormat.size = 16;

        var statusMessage:TextField = new TextField();
        statusMessage.defaultTextFormat = myFormat;
        statusMessage.wordWrap = true;
        statusMessage.width = 600;

        var faceFriend:TextField = new TextField();
        faceFriend.defaultTextFormat = myFormat;
        faceFriend.wordWrap = true;
        faceFriend.width = 300;

        for(var i:int = 0; i < 10; i++)
        {
            if(object.data[i].message == undefined){
                var userStory:String = object.data[i].story; // mowing through the facebook JSON response
                friendsStatus[i] = userStory;
            } else {
                var userStatus:String = object.data[i].message;
                friendsStatus[i] = userStatus;
            }

            var fName:String = object.data[i].from.name;
            friendsName[i] = fName;
        } 

        for(var j:int; j < 10; j++) // The headache loop
        {
            faceFriend.x = startX;
            faceFriend.y = startY;

            faceFriend.text = friendsName[j]; //assign the current name to the TextField text property
            addChild(faceFriend); //add it to the stage
            startY += 30; //increase the y value so they dont overlap
            trace(startY);
            trace(faceFriend.text);
            trace("");

            statusMessage.x = startX;
            statusMessage.y = startY;

            statusMessage.text = friendsStatus[j]; //same here for the status'
            addChild(statusMessage);
            startY += 20;
            trace(startY);
            trace(statusMessage.text);
            trace("");
        }
var-loader:URLLoader=URLLoader(event.target);
var feedResponse:String=(event.target.data);
var对象:object=JSON.decode(feedResponse)//获取数据
var friendsStatus:Array=new Array()//“状态”的数组
var-friendsName:Array=new-Array()//名称数组
var startX:int=120;
var startY:int=100;
var myFormat:TextFormat=newtextformat();
myFormat.size=16;
var statusMessage:TextField=newtextfield();
statusMessage.defaultTextFormat=myFormat;
statusMessage.wordWrap=true;
statusMessage.width=600;
var faceFriend:TextField=newtextfield();
faceFriend.defaultTextFormat=myFormat;
faceFriend.wordWrap=true;
faceFriend.width=300;
对于(变量i:int=0;i<10;i++)
{
if(object.data[i].message==未定义){
var userStory:String=object.data[i].story;//浏览facebook JSON响应
friendsStatus[i]=用户故事;
}否则{
var userStatus:String=object.data[i].message;
friendsStatus[i]=用户状态;
}
var fName:String=object.data[i].from.name;
friendsName[i]=fName;
} 
for(var j:int;j<10;j++)//头痛循环
{
faceFriend.x=startX;
faceFriend.y=startY;
faceFriend.text=friendsName[j];//将当前名称分配给TextField text属性
addChild(faceFriend);//将其添加到舞台
startY+=30;//增加y值,使它们不会重叠
痕迹(星光);
trace(faceFriend.text);
痕迹(“”);
statusMessage.x=startX;
statusMessage.y=开始;
statusMessage.text=friendsStatus[j];//此处的状态相同'
addChild(statusMessage);
startY+=20;
痕迹(星光);
跟踪(statusMessage.text);
痕迹(“”);
}
它应该循环一组状态,将它们分配给变量并将它们添加到阶段。然而,我所获得的只是最后一个状态被添加到舞台上。 正如您从所有跟踪中所看到的,我发现所有数组都具有正确的信息,并且y值(因此并非都位于彼此之上)正在正确进行。它只是拒绝让最终文本字段之外的任何内容可见:(

有什么想法吗

另外,我意识到这并不是一个非常出色的代码——提前为头疼的事道歉:p

您需要创建

var faceFriend:textField inside the loop.
您当前正在做的是创建一个文本字段并反复操作它。这导致了一个问题。此代码将生成10个字段并将它们水平对齐

var faceFriend:TextField;

for(var i:uint;i<10;i++)
{
    faceFriend = new TextField();
    faceFriend.x = i*20;
    addChild(faceFriend);
}
var faceFriend:TextField;

对于(var i:uint;i您现在所做的是只创建一个实例。然后您正在设置循环中的位置,因此您最初创建的实例将被移动

要创建10个文本字段,需要在循环内创建一个实例

所以你需要这样做

for(var i:int=0; i<10; i++) {
var faceFriend:TextField = new TextField();
faceFriend.defaultTextFormat = myFormat;
faceFriend.wordWrap = true;
faceFriend.width = 300;
//Everything else
}

for(var i:int=0;iWow,非常感谢你们,这解决了我的问题:)真不敢相信我竟然没想到!
for(var i:int=0; i<10; i++) {
var faceFriend:TextField = new TextField();
faceFriend.defaultTextFormat = myFormat;
faceFriend.wordWrap = true;
faceFriend.width = 300;
//Everything else
}