2010-04-01 5 views
1

제목에서 알 수 있듯이 캔버스 요소의 내용이 다시 그려지는 경우 알림이 필요합니다. 이것이 가능합니까?HTML5의 캔버스 요소에 대한 redraw-event가 있습니까?

그렇지 않은 경우 전체 페이지를 다시 그렸을 때 알림도 표시됩니다 (reDRAWN은 다시로드되지 않음).

내가 이것을 필요로하는 이유는 캔버스 내부에서 움직이는 애니메이션의 현재 FPS를 얻고 싶기 때문입니다.

답변

2

캔버스 자체에는 "다시 그리기"방법이나 이벤트가 없습니다. 아키텍처는 언제든지 모든 기능을 문맥에서 그릴 수있는 구조입니다. 그러나 가능한 해결책은 새 프레임의 도면을 표시하는 특정 기능을 "대체"하는 것입니다. 구체적으로, 나는 context.clearRect를 무시하는 것이 갈 길이 될 것이라고 생각하고 있습니다.

이 방법의 유일한 문제는 모든 프레임마다 한 번 clearRect를 호출한다고 가정한다는 것입니다. 그러나 이것이 사실이라면 위의 코드가 작동합니다.

+0

그렇다면 문제가 있습니다. 나는 내가 그 STH의 미친 듯이 높은 프레임 속도 초래하여 위의 방법을 사용하여. 80000+ FPS있다. 가 MozAfterPaint를 사용하여 테스트 :-(좀 더 그리기 오전 나는 프레임 당 직사각형보다 확신 파이어 폭스에서, 나는 9-10 FPS 사이 어딘가에있는 진짜 framerate를 얻을 수 있었다 : https://developer.mozilla.org/en/Gecko-Specific_DOM_Events#MozAfterPaint MozAfterPaint가 Webkit과 같은 다른 브라우저에 있습니까? 아니면 누군가 내 문제를 해결할 좋은 아이디어가 있습니까? – Timo

관련 문제