Итак, в настоящее время я работаю над игрой HTML5, в которой элемент холста используется как «ведро точек», визуальный индикатор количества очков, набранных пользователем. Но что-то странное происходит с холстом, когда я добавляю элемент в тело HTML-документа.
Итак, при записи в тело с помощью javascript (document.body.innerHTML = "something";) холст сотрет все внутри себя и сбросит настройки. Вот быстрый и грязный пример, который я придумал, чтобы показать вам, что я имею в виду:
<!DOCTYPE HTML>
<html>
<body>
<canvas id="a"></canvas>
<script type = "text/javascript">
function addToBody()
{
document.body.innerHTML += "<p>I am adding to the body</p>";
}
var can = document.getElementById("a");
var con = can.getContext("2d");
//Draw rectangle on canvas
con.fillRect(0,50,100,100);
//Add text to body after 5 seconds
setTimeout("addToBody()",5000);
</script>
</body>
</html>
Я знаю, что традиционный способ сбросить холст - это назначить ширину холста следующим образом:
canvas.width = canvas.width;
Это еще один способ добиться того же эффекта или просто ошибка? Может кто-нибудь дать мне некоторое представление об этом? Спасибо.