Possible Duplicate:
function in setInterval() executes without delay
I am trying to use setTimeOut to calla function every X milliseconds, but it seems that it just freaks out and counts incredibly fast no matter what timeframe I set it to? Am I doing something wrong?
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);
Change your setTimeout call to this:
RunGame()returns void so havingsetTimeout(RunGame(),1000);is actually more akin tosetTimeout(void,1000);which does nothing. setTimeout works by using a function pointer to know what function to execute.