2013-04-05 5 views
1

함수 내에서 setinterval을 가졌습니다. 첫 번째 클릭에서 모두 괜찮은 것처럼 보이지만 이후의 모든 클릭은이 타이머를 가속화합니다. 나는 왜 그런지 이해하지 못한다.setinterval이 가속되는 것처럼 보입니다.

function startGame() { 
    var myVar=setInterval(function(){myTimer()},100); 
} 
+4

setInterval 대신 setTimeout이 필요합니까? – karaxuna

+0

매번 10 분의 1 초마다 myTimer에 전화하고 싶습니다. –

+0

클릭 동작은 어디에서 발생합니까? 'startGame()'함수가 클릭을 통해 시작 되었습니까? – sourRaspberri

답변

2

두 번째 시간을 클릭하면이 이벤트가 100ms에서 두 번 발생하기 때문에 첫 번째 간격도 작동합니다.

var myVar; 
function startGame() { 
    if(myVar) 
     clearInterval(myVar); 
    myVar=setInterval(function(){myTimer()},100); 
} 

OR을 :이 시도

var myVar; 
function startGame() { 
    if(!myVar) 
     myVar=setInterval(function(){myTimer()},100); 
} 
+0

하지만 이 때마다 10 분의 1 초마다 업데이트하고 싶습니다. 시작 게임은 myTimer를 재설정합니다. –

+0

@DirkNachbar 첫 번째 예는 타이머를 재설정합니다. – karaxuna

+0

덕분에 지금 작동했습니다. –

0

setInterval을 모든 X 밀리 초, 당신의 경우에 당신이 한 번 클릭 추측 것 실행할 수있는 기능을 설정하고 매 100 밀리 실행하기 시작, 다시 클릭하면 매 100ms마다 두 번째 실행이 시작됩니다 (이제 평균적으로 매 50ms마다 하나씩 실행).

나는 setTimeout을 권하고 싶다. 그러나 나는 당신이 필요로하는 것을 생각하지 않는다. 나는 setinterval을 게임 루프로 사용하려고 생각하고 있나? 맞습니까? 이 경우 한 번만 실행하는 방법이 필요합니다.

관련 문제