2011-02-06 13 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()ブレーク部分を使い、25を追加しました。ありがとう! – Ghost9

関連する問題