7

因此,我需要在我的应用程序(用 JS 编写)的后台运行一个无限循环,该循环将用于每六秒循环一次 ScrollableView。然而,当这个循环运行时,我无法像你想象的那样在应用程序中执行任何其他操作。

总而言之,我怎样才能始终运行此循环,同时仍使应用程序运行?

代码:

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 回答