Изображение в canvas
Всем привет)
Я новичек в JS, знаю основы, понимаю основы ООП(вроде бы), есть небольшой опыт в вебе. Итак, вопрос Я создаю объект, пусть будет Cat. Одно из свойств - изображение этого кота. Как отрисовать его(объект) в canvas?
var canvas = document.querySelector('.canvas');
var ctx = canvas.getContext('2d');
var cat = new Cat('Max');
function Cat(name){
this.name = name;
this.img = 'cat.jpg';
}
|
JohnD_,
Пожалуйста, отформатируйте свой код! Для этого его можно заключить в специальные теги: js/css/html и т.п., например: [js] ... ваш код... [/js] О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting. |
JohnD_,
<!DOCTYPE html>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
</head>
<body>
<canvas class="canvas" width="400" height="200"></canvas>
<script>
var canvas = document.querySelector(".canvas");
var ctx = canvas.getContext("2d");
function Cat(name, src) {
this.name = name;
this.img = new Image;
this.img.src = src || "cat.jpg";
}
Cat.prototype.drawing = function() {
var x = (canvas.width - 100) * Math.random() | 0;
var y = (canvas.height - 80) * Math.random() | 0;
ctx.drawImage(this.img, x, y, 100, 80);
};
var cat = new Cat("Max", "http://kinoclub.to/wp-content/uploads/2016/04/y_1483200759_47567.jpg");
cat.drawing();
</script>
</body>
</html>
|
Спасибо
А можно не использовать Cat.prototype.drawing? Объявить метод в классе как
this.draw = function(){
ctx.drawImage(this.img, 10, 10);
}
этот код работает, но не буду ли проблемы в будущем? |
JohnD_,
Cat.prototype.drawing - одна функция для всех обьектов, this.draw у каждого обьекта своя функция - 1000 обьектов 1000 функций, выбор за вами. |
то есть для каждого класса, который я захочу отрисовать, мне придется прописывать такой код?
|
JohnD_,
класс-через-прототип |
понял, спасибо
|
| Часовой пояс GMT +3, время: 12:27. |