7

そのため、6 秒ごとに ScrollableView を循環させるために使用される (JS で記述された) アプリのバックグラウンドで無限ループを実行する必要があります。ただし、このループが実行されている間、アプリで他の操作を実行することはできません。

要約すると、アプリを動作させながら、このループを常に実行するにはどうすればよいでしょうか?

コード:

function startScrolling() {
    for(; ; ) {
        sleep(6000);
        Ti.API.info('Scrolling To Index: ' + viewIndex);
        scrollView.scrollToView(viewIndex);
        if(viewIndex == 4) {
            viewIndex = 0;
            scrollView.scrollToView(viewIndex);
        } else {
            scrollView.scrollToView(viewIndex);
            viewIndex++;
        }
    }
}

function sleep(milliseconds) {
    var start = new Date().getTime();
    while((new Date().getTime() - start) < milliseconds) {
        // Do nothing
    }
}

編集:解決策

setInterval(function() {
    Ti.API.info('Scrolling To Index: ' + viewIndex);
        scrollView.scrollToView(viewIndex);
        if(viewIndex == 4) {
            viewIndex = 0;
            scrollView.scrollToView(viewIndex);
        } else {
            scrollView.scrollToView(viewIndex);
            viewIndex++;
        }
}, 6000);
4

1 に答える 1

14

をご覧くださいwindow.setInterval()

/* 
    Calls a function repeatedly, with a fixed 
    time delay between each call to that function.
*/
setInterval(startScrolling, 6000);

MDN ドキュメント: https://developer.mozilla.org/en/window.setInterval

于 2012-06-29T16:43:20.790 に答える