캔버스 애니메이션에 가장 적합한 것은 어느 것입니까? requestAnimFrame 또는 setInterval?canvas 애니메이션의 requestAnimFrame 또는 setInterval입니까?
답변
requestAnimationFrame
은 브라우저가 새 프레임을 그릴 준비가되었을 때 애니메이션이 정확하게 실행되도록합니다. 당신은 배터리 수명이 간격이 너무 오래 만드는
- : 당신이
setInterval
를 사용하는 경우, 당신은 하나의 위험을 실행 ,이 경우 당신은 페이지 (배터리 수명을 절약 할 수있는) 보이지 않을 때 자주 실행하는 스로틀 수있는 짧은 간격으로
requestAnimationFrame
를 사용하여 부드러운 애니메이션을 입수했습니다 수 있지만, setInterval
의 일부 구현은이 작업을 수행 뿐만 아니라 (현재 Firefox 및 Chrome).
requestAnimationFrame
은 애니메이션 용으로 의도적으로 제작되었습니다. setInterval
은 정기적 인 조치가 필요한 모든 작업을 수행하도록 설계되었습니다. 애니메이션 (특히 캔버스 애니메이션)을 수행하는 경우 requestAnimationFrame
을 사용하고 이전 브라우저의 경우 setInterval
으로 대체하는 것이 좋습니다.
그러나 당신은 큰 기능에 setInterval을 사용할 수 있습니다 즉로드를 호출하고 윈도우가 부하 인 경우에만 전화 :
function load()
{
var intervalle = x;
var game= setInterval(process,intervalle);
...
}
window.addEventListener("load",load,true);
-1 : 질문에 어떻게 대답합니까? 네, 확실히 애니메이션을 위해서'setInterval'을 사용할 수는 있지만,이 대답은'setInterval'이나'requestAnimationFrame'이 더 좋은 이유를 설명하지 못합니다. – apsillers
- 1. 애니메이션 SVG 또는 Canvas?
- 2. 애니메이션 동기화 또는 애니메이션의 중간 지점에서 호출
- 3. 간단한 애니메이션의 경우 Java 또는 C# + XNA?
- 4. CSS (또는 JQuery와) 변경 색상 애니메이션의 onclick
- 5. Android : 애니메이션의 시작점은 무엇입니까?
- 6. ICS에서 Canvas 또는 drawBitmap이 변경 되었습니까?
- 7. Android Canvas - 사각형 또는 사각형의 그림 그리기
- 8. 애니메이션의 시작을 지연하십시오.
- 9. html5 canvas 출력을 비디오 또는 swf 또는 png 시퀀스로 캡처합니까?
- 10. 에서 애니메이션의 주소가 레이어에 추가 한 애니메이션의 주소와 다릅니다.
- 11. 애니메이션의 이미지 크기!
- 12. Raphael 애니메이션의 신참 질문
- 13. UIImageView 애니메이션의 이미지 알기
- 14. jQuery 애니메이션의 프레임 속도
- 15. 애니메이션의 상대 회전
- 16. JQuery와 애니메이션의 질문
- 17. 애니메이션의 프레임 이해
- 18. 애니메이션의 RelativeLayout 크기 문제
- 19. 애니메이션의 UIImage 방향
- 20. 잡히지 않은 RangeError : 최대 호출 스택 크기가 캔버스를 초과했습니다. requestAnimFrame
- 21. Quartz 2D 또는 CALayer 애니메이션의 "레드 경고"애니메이션 효과?
- 22. 아랍어 스타일 페이지 Xcode 또는 코어 애니메이션의 뒤집기/뒤틀림
- 23. 애니메이션의 일부로 gif의 크기를 축소하십시오.
- 24. UITableView, 애니메이션의 끝을 잡는 방법?
- 25. JavaMonkey Canvas
- 26. 애니메이션의 특정 동작 방정식 도출
- 27. MX Canvas 최대 크기
- 28. HTML5 Canvas rendering oddly
- 29. HTML5 Canvas and manipulating
- 30. HTML5 Canvas, GUI
는'setInterval'가 대규모 빠릅니다. http://jsperf.com/requestanimationframe –
http://jsperf.com/requestanimationframe/3, http://jsperf.com/requestanimationframe/5 – bfavaretto
'requestAnimFrame'은 애니메이션 전용 *입니다. 'setInterval'은 폴백으로 만 사용될 수 있습니다. – Bergi