캔버스를 사용하여 HTML5 게임을 구현 중입니다. 이제 저는 캔버스 위에 절대 위치를 가진 HTML 요소를 사용하여 툴팁, 말풍선, 정보창 등과 같은 모든 텍스트 오버레이를 만드는 것에 대해 생각하고 있습니다. 그래서 저는 CSS3가 제공하는 많은 효과와 전환 효과를 사용할 수 있습니다.캔버스와 CSS3 요소 혼합하기
하지만 성능에 대해서는 잘 모르겠습니다. 이 오버레이는 자유롭게 추가하고 제거해야합니다 (MMORPG와 비슷한 것이므로 많은 말풍선이있을 것입니다).
DOM 탐색/제거를 추가 :
아마 성능에 관한 2 개 질문이 있습니다. 어쩌면 캐시가 도움이 될까요?
HTML과 CSS3 자체.
다른 옵션은 캔버스 자체에서 이러한 요소를 관리하여 각 프레임을 그리는 것입니다. 하지만 CSS3와 비슷한 효과를 내기 위해 여분의 코드, 시간 초과 및 추가해야 할 것들이 있기 때문에 성능 저하가 다시 발생할 수 있습니다. 그리고 어쨌든 일부 데이터 구조의 순회가 필요할 것입니다.
조언, 의견, 경험이 있으십니까?
미리 감사드립니다.
"중요한"요소에 대한 참조를 캐싱하여 DOM 통과 시간을 줄일 수 있습니다. 나는 종종 someUniqueId => DOMElement의 해시를이 목적으로 유지한다. id는이 스키마를 돕기 위해 요소에 data- * 속성으로 저장할 수 있습니다. CSS3와 Canvas를 섞어 보면, 나는이 전략에 대해 궁금해하고있다 (+1).변환 (캔버스 좌표 -> 화면 좌표)은 잘 추상화되어야합니다. 그렇지 않으면 캔버스 상단에 일반 요소의 위치를 결정할 때 엉망이됩니다. –