Что вам действительно нужно сделать, так это создать цикл рендеринга с помощью javascript с помощью requestAnimationFrame () и выполнить рендеринг с помощью элемента canvas.Вот действительно простой пример рендеринга с HTML5:
<!DOCTYPE html>
<html>
<body>
<canvas id="gameCanvas" width="800px" height="600px"></canvas>
<script type="text/javascript">
var canvas = document.getElementById('gameCanvas');
var context = canvas.getContext('2d');
var myImage = new Image();
var myImage.onload=function(){init();};
var myImage.src='location/of/image.png';
var imageX = 0, imageY = 0;
function render()
{
window.requestAnimationFrame(render);
// clear canvas
canvas.width = canvas.width;
context.drawImage(myImage, imageX, imageY);
imageX++;
imageY++;
}
function init()
{
window.requestAnimationFrame(render);
}
</script>
</body>
</html>
Никогда не будет мерцания при рендеринге через холст, поскольку браузер уже выполняет двойную буферизацию этой поверхности рендеринга;и ручная двойная буферизация холста фактически приведет к значительному снижению частоты кадров.То, с чем вы, вероятно, сталкиваетесь (если вы визуализируете через холст), это разрыв кадра.Использование requestAnimationFrame решит проблему разрыва, по сути v-синхронизируя рендер (так как он ожидает окончания выполнения кода для рендеринга).
Надеюсь, это поможет вам начать работу с верным путем для рендеринга с HTML5.