Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 03.03.2018, 18:27
Новичок на форуме
Отправить личное сообщение для JohnD_ Посмотреть профиль Найти все сообщения от JohnD_
 
Регистрация: 03.03.2018
Сообщений: 4

Изображение в 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_, 03.03.2018 в 20:12.
Ответить с цитированием
  #2 (permalink)  
Старый 03.03.2018, 19:48
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,123

JohnD_,
Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[js]
... ваш код...
[/js]


О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.
Ответить с цитированием
  #3 (permalink)  
Старый 03.03.2018, 19:48
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,123

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>
Ответить с цитированием
  #4 (permalink)  
Старый 03.03.2018, 20:11
Новичок на форуме
Отправить личное сообщение для JohnD_ Посмотреть профиль Найти все сообщения от JohnD_
 
Регистрация: 03.03.2018
Сообщений: 4

Спасибо
А можно не использовать Cat.prototype.drawing? Объявить метод в классе как
this.draw = function(){
  	ctx.drawImage(this.img, 10, 10);
  }

этот код работает, но не буду ли проблемы в будущем?
Ответить с цитированием
  #5 (permalink)  
Старый 03.03.2018, 20:16
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,123

JohnD_,
Cat.prototype.drawing - одна функция для всех обьектов,
this.draw у каждого обьекта своя функция - 1000 обьектов 1000 функций, выбор за вами.
Ответить с цитированием
  #6 (permalink)  
Старый 03.03.2018, 20:23
Новичок на форуме
Отправить личное сообщение для JohnD_ Посмотреть профиль Найти все сообщения от JohnD_
 
Регистрация: 03.03.2018
Сообщений: 4

то есть для каждого класса, который я захочу отрисовать, мне придется прописывать такой код?
Ответить с цитированием
  #7 (permalink)  
Старый 03.03.2018, 20:45
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,123

JohnD_,
класс-через-прототип
Ответить с цитированием
  #8 (permalink)  
Старый 03.03.2018, 20:46
Новичок на форуме
Отправить личное сообщение для JohnD_ Посмотреть профиль Найти все сообщения от JohnD_
 
Регистрация: 03.03.2018
Сообщений: 4

понял, спасибо
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Image.onload() не загружает изображение в canvas micronic Общие вопросы Javascript 4 05.02.2018 14:28
JS загружает изображение всегда с локального кэша - почему? buhpro Общие вопросы Javascript 4 02.10.2013 21:01
Как открыть большое canvas изображение в IE10 function Internet Explorer 1 22.09.2013 19:24
Как в canvas нарисовать одно изображение на другом? Dimaz Общие вопросы Javascript 0 29.07.2013 20:11
Canvas импорт изображение из папки! Severtain Общие вопросы Javascript 1 13.06.2011 16:27