2011-02-06 59 views
0

我拉一個XML並使用for循環來創建一個拇指列表。這個列表將會很長,但我一次只能加載25個大拇指,以便下一個25只在用戶點擊按鈕時加載。我知道如何在函數中設置for循環,但我無法弄清楚如何分解循環,以停止和開始。我想我會每次按下按鈕時調用該函數,並且循環會在接下來的25處停止。在AS3中停止並啓動for循環?

我想也許我可以用其他變量代替for();但是我嘗試過的一切都會破壞它。我試着拉動var i:int = 0;出於這樣的功能可以設置我,但我想我不清楚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 2011-02-06 19:13:04