3

Titaniumフレームワークを使用して開発しているモバイルアプリケーションにタイマーを追加したいと思います。ドキュメントに関連するものは見つかりませんでした。誰かがこの問題の解決策を提案できますか?

ありがとう

4

2 に答える 2

10

後でコードを実行するためのタイマーを意味する場合は、javascriptsetTimeoutまたはsetInterval.

setTimeout(function(){
   toDoLater();
}, 1000);

違いはsetInterval繰り返され、setTimeout一度実行されます。

于 2012-09-18T12:38:02.927 に答える
0
var win = Titanium.UI.createWindow({
    title:"Setting Timers",
    backgroundColor:"#FFFFFF"
});

var setTimeoutLabel = Titanium.UI.createLabel({
    text:"Tap Below",
    width:120,
    height:48,
    top:64,
    left:12,
    textAlign:"left",
});

var setTimeoutButton = Titanium.UI.createButton({
    title:"setTimeout",
    height:48,
    width:120,
    bottom:12,
    left:12 
});

var setIntervalLabel = Titanium.UI.createLabel({
    text:"Tap Below",
    width:120,
    height:48,
    top:64,
    right:12,
    textAlign:"right"
});

var setIntervalSwitch = Titanium.UI.createSwitch({
    bottom:24,
    right:12,
    value:false
});

setTimeoutButton.addEventListener("click",function(e){
    if(!this.fired){//Prevent multiple fires of the timeout
        var t = setTimeout(function(){
            setTimeoutLabel.text = "Fired!";
            clearInterval(t);
            t = null;
        },2000);
        this.fired = true;
    }
});

setIntervalSwitch.addEventListener("change",function(e){
    if(e.value){
        var i = 0;
        this.timer = setInterval(function(){
            if(i%2){
                setIntervalLabel.text = "";
            }else{
                setIntervalLabel.text = "Bang!";
            }
            i++;
        },500);
    }else{
        clearInterval(this.timer);
        this.timer = null;
        i=0;
        setIntervalLabel.text = "Stopped";
    }
});

win.add(setTimeoutLabel);
win.add(setTimeoutButton);
win.add(setIntervalSwitch);
win.add(setIntervalLabel);

win.open();
于 2015-09-21T11:59:18.047 に答える