在背景中运行循环

JTA*_*pps 5 javascript loops background titanium uiscrollview

所以,我需要在我的应用程序(用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
    }
}
Run Code Online (Sandbox Code Playgroud)

编辑:解决方案

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);
Run Code Online (Sandbox Code Playgroud)

Jam*_*ill 12

看看window.setInterval().

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

MDN文档:https://developer.mozilla.org/en/window.setInterval

  • 知道了谢谢。只需将其组合成一种方法并使用间隔发布上面的代码 (2认同)