setTimeOut无法正常工作?

时间:2011-11-24 15:56:03

标签: javascript mobile titanium settimeout setinterval

  

可能重复:
  function in setInterval() executes without delay

我正在尝试每隔X毫秒使用setTimeOut来调用calla函数,但它似乎只是吓坏了,无论我设置的时间范围如何都非常快?我做错了吗?

var Count = 0;
var GameRunning = 0;

var lblTimer = Titanium.UI.createLabel({
    color:'#999',
    text:'I am Window 1',
    font:{fontSize:20,fontFamily:'Helvetica Neue'},
    textAlign:'center',
    width:'auto',
    height: 25,
    top: 25
});

var btnStartGame = Titanium.UI.createButton({
   title: 'Start',
   width: 50,
   height: 25,
   top: 75
});

function RunGame () {
  Count++;
  lblTimer.text = Count;
  x = setTimeout(RunGame(), 100000);
}

function StartGame () {
  if(GameRunning==0)
  {
    GameRunning = 1;
    RunGame();
  }
    else
  {
    // Stop the game.
    GameRunning = 0;
    Count = 0;
  }
}

function GameTimerCount() {
    Titanium.API.info("inside GameTimerCount");
    Count++;
    lblTimer.text = "RUNNING: " + Count;
}

btnStartGame.addEventListener('click',function(e)
{
    Titanium.API.info("button clicked");
    StartGame();

    //var test = setInterval("GameTimerCount()",100);
});

// Add objects to window
Titanium.UI.currentWindow.add(lblTimer);
Titanium.UI.currentWindow.add(btnStartGame);

1 个答案:

答案 0 :(得分:6)

将setTimeout调用更改为:

setTimeout(RunGame,1000);

RunGame()返回无效,因此setTimeout(RunGame(),1000);实际上更类似于setTimeout(void,1000);,它什么都不做。 setTimeout通过使用函数指针来知道要执行的函数。