var count=6
var counter=setInterval(timer, 1000);
function timer(){
count=count-1;
if (count === 0){
requestAnimationFrame(repeat);
clearInterval(counter);
return;
}
var countdown = createEntity($('<div id="countd"><p id="countp"></p></div>'));
game.add(countdown);
document.getElementById("countp").innerHTML=count;
}
이것이 카운트 다운에 대한 나의 접근 방식입니다. 게임을 코딩하고 있습니다. 우선 카운트 다운이 표시됩니다. 그런데 왜 "1"에서 멈춰 있습니까? 그리고 내가 연주하는 경우 여전히 디스플레이 위에 "1"을 유지합니다.
내 생각은 clearInterval (Counter) 이었지만 작동하지 않습니다. 다른 접근 방법이 있습니까?
코드의 문제점은 다음과 같습니다.
즉, 카운터가 0이면 div-tag를 업데이트하지 않고 마지막으로 표시된 값은 1입니다.
설명하는 문제가 코드의 유일한 문제라고 가정하면 다음과 같이 변경할 수 있습니다.
function timer() {
var countdown = createEntity($('<div id="countd"><p id="countp"></p></div>'));
game.add(countdown);
count -= 1;
document.getElementById("countp").innerHTML=count;
if (count === 0) {
requestAnimationFrame(repeat);
clearInterval(counter);
}
}
기본적으로 필드가 업데이트 된 후 if 문을로 이동했습니다. 코드를 테스트하지는 않았지만 변경해야 할 사항에 대한 아이디어를 얻은 경우.
그러나 당신이 정말로 전화 createEntity
하고 game.add(countdown)
모든 타이머 호출에 대해 궁금합니다 . 대부분의 경우 타이머 함수를 호출하기 전에 태그를 만들고 값을 업데이트하려고합니다. 하지만 애니메이션을 수행하고 있으므로 각 값에 대한 개별 태그가 필요하므로 그렇게하는 것이 반드시 잘못된 것은 아닙니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다