Я хочу нарисовать много кругов разных размеров с одинаковым изображением на них, используя прототип.Проблема в том, что круги не появляются с изображениями, нарисованными на них.
Круги все еще там, потому что они видны, когда используется обводка, но изображения не прорисованы.Мне удалось нарисовать дугу с изображением без прототипа, но как только я ее использую, она не работает.
В консоли не появляются ошибки, поэтому неясно,мне то, что мне не хватает.Я пытался переместить слушателя событий за пределы прототипа, но изображения кругов по-прежнему не появлялись.
Если у кого-то есть понимание и, возможно, решение относительно того, почему это не работает, которым они могут поделиться, это будет очень цениться.
Вот код:
const ctx = document.getElementById('canvas').getContext('2d');
class Balls {
constructor(xPos, yPos, radius){
this.xPos = xPos;
this.yPos = yPos;
this.radius = radius;
}
}
Balls.prototype.render = function(){
const img = document.createElement('img');
img.src = 'crystal.jpg';
ctx.arc(this.xPos, this.yPos, this.radius, 0, Math.PI*2)
ctx.stroke();
ctx.clip();
img.addEventListener('onload', function(e){
ctx.drawImage(img, this.xPos - this.radius, this.yPos - this.radius,
this.radius*2, this.radius*2);
});
};
let object = new Balls(100, 100, 50);
object.render();
<canvas id='canvas'></canvas>