2011-02-06 2 views
0

저는 XML을 당기고 for 루프를 사용하여 엄지 목록을 만듭니다. 이 목록은 꽤 길어질 것입니다 만 한 번에 25 개의 엄지 손가락 만로드되므로 다음 25는 사용자가 버튼을 눌렀을 때만로드됩니다. 함수에서 for 루프를 설정하는 방법은 알고 있지만 루프를 중단하고 시작하는 방법을 알아낼 수는 없습니다. 버튼을 누를 때마다 함수를 호출하고 루프가 다음 25에서 중단 된 부분을 선택한다고 생각했습니다.AS3에서 for 루프를 중지했다가 시작 하시겠습니까?

for()에 다른 변수를 대입 할 수 있다고 생각했습니다. 그러나 내가 시도한 모든 것은 그것을 깨뜨린다. 나는 var i : int = 0; 그래서 함수는 i를 설정할 수 있지만, for 루프가 어떻게 작동하는지 정확히 알지 못한다고 생각합니다. 내가 뭘 어떻게

:

function loadarticleHeadlines():void 
{ 
    for (var i:int = 0; i < egarticleXml.articlelist.articleitem.length(); i++) 
    { 
     vsThumb = new articleBox(); 
     vsThumb.alpha = 0; 
     vsThumbLoader = new Loader(); 
     vsThumbLoader.load(new URLRequest(egarticleXml.articlelist.articleitem[i].articlethumbnail)); 
     articleListContainter.addChild(vsThumb); 
     vsThumb.articleImage.addChild(vsThumbLoader); 
     vsThumb.articleTitle.text = egarticleXml.articlelist.articleitem[i].articletitle; 
     titleAutosize(vsThumb.articleTitle); 
     vsThumb.x = next_x; 
     next_x += 260; 
     articlevsThumb[i] = vsThumb; 
     //vsThumbLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, showBox); 
     vsThumb.clickBtn.buttonMode = true; 
    } 
} 

답변

1

이를보십시오.

var xml:Array = []; 
for(var i:int=0;i<100;i++) 
{ 
    xml.push(i); 
    //array from 0-99 
} 
var xmlPosition:int = 0; 
grabXML(xmlPosition); 
//25 
grabXML(xmlPosition); 
//50 
grabXML(xmlPosition); 
//75 
grabXML(xmlPosition); 
//100 

function grabXML(position:int):void 
{ 
    for(position;position<xml.length;position++) 
    { 
     trace(xml[position]); 
     //yields 0-24, 25-49, 50-74, and 75-99 
     if(position === xmlPosition + 25) 
     { 
      break; 
     } 
    } 
    xmlPosition += 25; 
} 

매개 변수의 원래 값 (xmlPosition)보다 25가 더 빠르면 바로 해제됩니다. 함수를 추가로 호출하면 xmlPosition이 xml의 length 속성보다 크기 때문에 아무 것도 산출되지 않습니다.

+0

나는 당신이 가진 것과 정확히 똑같지는 않았지만 if() break 부분을 사용하고 25를 추가했다. 감사! – Ghost9

관련 문제