Показать сообщение отдельно
  #1 (permalink)  
Старый 09.08.2016, 21:47
Новичок на форуме
Отправить личное сообщение для Morr123 Посмотреть профиль Найти все сообщения от Morr123
 
Регистрация: 09.08.2016
Сообщений: 4

свойства объекта события
Есть такой класс
function Sketch(name) {
      this.isDrawing;
        
      this.canvas = document.getElementById(name);
      this.context = this.canvas.getContext("2d");
      // Подключаем требуемые для рисования события
      this.canvas.onmousedown = this.startDrawing;
      this.canvas.onmouseup = this.stopDrawing;
      this.canvas.onmouseout = this.stopDrawing;
      this.canvas.onmousemove = this.draw;
      this.context.lineWidth = 5;
      this.context.strokeStyle = '#ff0';
      this.context.lineJoin = "round";
      this.context.lineCap = "round";
 
   this.startDrawing = function(e) 
   {
    // Начинаем рисовать
       this.isDrawing = true;
    
    // Создаем новый путь (с текущим цветом и толщиной линии) 
       this.context.beginPath();
    
    // Нажатием левой кнопки мыши помещаем "кисть" на холст
       this.context.moveTo(e.pageX - canvas.offsetLeft, e.pageY - canvas.offsetTop);
    }
 
    this.draw = function(e) 
    {
       if (this.isDrawing == true)
       {
        // Определяем текущие координаты указателя мыши
          var x = e.pageX - this.canvas.offsetLeft;
          var y = e.pageY - this.canvas.offsetTop;
        
        // Рисуем линию до новой координаты
          this.context.lineTo(x, y);
          this.context.stroke();
       }
    }
 
    this.stopDrawing = function() 
    {
        isDrawing = false;  
    }
 
};


где свойства this.canvas.onmousedown и т.д. это события к которым присвоено значение обработчика.

при объявлении данного класса в коде
var sketch = new Sketch('sketch');


этот класс поидее должен слушать эти события и внутри себя реагировать на них, но он этого не делает! даже по дебагеру события просто не срабатывают. Если написать тоже самое только не в классе а обычными функциями то все работает.
Как мне сделать это в стиле ООП, но что бы срабатывали события?
Ответить с цитированием