애니메이션으로 놀고 있습니다. 나는 두 개의 동그라미를 정해진 거리만큼 움직이고 멈추게하려고 노력 중이다. 내가 가지고있는 문제는 여러 간격으로 발생합니다. 고유 한 변수에 각 간격을 할당하고 그 변수를 clearInterval로 할당하지만 첫 번째 간격은 계속됩니다. 여기 자바 스크립트 setInterval : 여러 간격
코드입니다 : 다음function moveRight(player){
if(player==1){
currentLoc = p1Loc[0]; //global var with player's current location
intervalR1 = setInterval(function(){
p1Loc[0]+=1;
draw(); //function that redraws the canvas
if(p1Loc[0]>currentLoc+wu){ //wu is a single "width-unit"
clearInterval(intervalR1);
}
},5)
}
else{
currentLoc = p2Loc[0];
intervalR2 = setInterval(function(){
p2Loc[0]+=1;
draw();
if(p2Loc[0]>currentLoc+wu){
clearInterval(intervalR2);
}
},5)
}
}
,의 내가 while 루프 내에서 다음과 같은 지침을 제공 가정 해 봅시다 :
instructions = ["moveRight(1)", "moveRight(2)"];
for(instruction in instructions){
eval(instructions[instruction]); //I know, eval(), ugh. Is just temporary
}
두 선수를 잘 움직이기 시작한다 일어나고 끝나는 무엇을하지만, 선수 2는 선수가 계속 가고있는 동안 단 하나 wu, 또는 폭 단위 후에 멈춘다. 지시 사항을 "moveRight (1);"로 변경하면 플레이어 1이 단일 wu를 이동하고 중지합니다.
여기 무슨 일 이니?
을이 통과 간격으로 재생하는 대신 [requestAnimationFrame] (http://davidwalsh.name/requestanimationframe-shim)을 사용하는 것이 좋습니다. –
그 간격은? setInterval이 완료 될 때까지 설정되지 않습니다. 이는 clearInterval 호출 전에 경고를 표시하여 테스트하기에 충분합니다. –