Остановить и запустить цикл for в AS3? - PullRequest
0 голосов
/ 06 февраля 2011

Я вытягиваю xml и использую цикл for для создания списка большого пальца. Этот список будет довольно длинным, но я загружаю только 25 превью, так что следующие 25 загружаются только тогда, когда пользователь нажимает кнопку. Я знаю, как настроить цикл for в функции, но я не могу понять, как разбить цикл там, где он остановился бы и запустился. Я думал, что буду вызывать функцию каждый раз, когда нажимается кнопка, и цикл запускается с того места, где он остановился, с последующими 25.

Я подумал, что я мог бы подставить другие переменные в for (); но все, что я пробовал, ломает это. Я попытался вытащить переменную 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 Ответ

1 голос
/ 06 февраля 2011

Попробуйте.

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;
}

Я ломаю, как только параметр на 25 больше, чем его первоначальное значение (xmlPosition).Вызов функции в дополнительное время ничего не даст, так как xmlPosition больше, чем свойство длины xml.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...