2011-11-03 4 views
0

나는 actionscript에 Facebook 클라이언트를 만들고 있는데 문제가 있습니다.AS3 addChild에 마지막으로 추가 된 TextField 만 표시됨

상태의 집합을 통해 루프 예정이다
 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(""); 
     } 

', 그 변수에 할당하고 무대에 추가 : 나는이 코드 블록을 가지고있다. 그러나 내가 성취 한 것은 무대에 추가되는 마지막 상태입니다. 모든 흔적에서 볼 수 있듯이 모든 배열에 올바른 정보가 있고 y 값 (모든 것이 서로 위에 있지는 않음)이 올바르게 진행되고 있음을 발견했습니다. P 당신은 만들 필요가

답변

0

: 사전에 두통 죄송합니다 - 그냥 내가 정확히 화려한 코드가 아니다 실현

PS 최종 텍스트 필드하지만 아무것도

어떤 아이디어 :(볼 수 있도록 거부 현재 하나 개의 텍스트 필드를 만들고 계속해서 또 다시 그것을 조작되고 뭐

var faceFriend:textField inside the loop. 

. 문제가 발생한다.이 코드는 10 개 필드를 생성하고 수평으로 정렬됩니다.

이 코드는 하나의 필드를 생성하여 10 번 조작하고 하나의 필드를 표시합니다. 이는 본질적으로 수행중인 작업입니다.

var facefriend:TextField = new TextField(); 

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

+0

와우, 당신에게 너무 많은 사람을 감사해야 할 것이 내 문제를 해결 :) 내가 생각하지 않았다 믿을 수 없어! – user1027657

0

당신이 지금하고있는 것은 단 1 인스턴스를 생성합니다. 그런 다음 루프의 위치를 ​​설정하므로 원래 만든 루프가 이동합니다.

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 
} 
관련 문제