У меня есть прототип Sprite, который имеет функцию конструктора ...DrawImage не работает
function Sprite(img) {
for (var property in img) this[property] = image[property];
}
... который принимает в объекте изображения и делает его копию. Теперь я пытаюсь нарисовать спрайт с помощью DrawImage:
Sprite.prototype.draw = function(ctx, x, y) {
ctx.drawImage(this, x, y);
}
это дает мне ошибку:
Uncaught TypeError: Failed to execute 'drawImage' on 'CanvasRenderingContext2D': No function was found that matched the signature provided.
однако, если я использую реальный объект изображения и в противном случае точно такой же код, а именно:
Sprite.prototype.draw = function(ctx, x, y) {
ctx.drawImage(img, x, y);
}
он работает точно так, как должен (img - глобальное имя объекта Image).
Это полный код прототипа Sprite. Я не понимаю, какая разница вызывает это, поскольку я только добавила одну функцию в Sprite; привлечь.
[drawImage поддерживает только собственные объекты.] (Http://stackoverflow.com/questions/14934033/draw-preloaded-image-into-canvas). – OrionMelt