以非阻塞方式进行数字计数动画

时间:2015-04-29 15:46:12

标签: javascript ios multithreading animation titanium

我试图以类似动画的风格计算一个特定目标值的数字。 iOS环境是Titanium。我这样做如下。

function countNumberUp(label) {
    label.currentVal = label.currentVal ? label.currentVal : 0;
    setTimeout(function() {
        if (label.currentVal < label.targetVal) {
            label.currentVal += 1;
            label.setText(label.currentVal);
            countNumberUp(label);
        }
    }, 5);

}

labelTi.UI.Label的实例。

我看到的第一个问题是label.setText() - 方法很慢。如果数字急剧计数会很酷,但即使我改变了setTimeout()的第二个参数,它也只是每秒5步。

另一件事是动画完全阻止了iOS的主/ UI线程,并且UI在动画完成之前几乎不接受任何动作。似乎setTimeout不会在单独的线程中运行。

你们中有谁知道更好的方法吗?

顺便说一下。我也尝试了setInterval(),但似乎没有更好。

0 个答案:

没有答案