Есть такой класс
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');
этот класс поидее должен слушать эти события и внутри себя реагировать на них, но он этого не делает! даже по дебагеру события просто не срабатывают. Если написать тоже самое только не в классе а обычными функциями то все работает.
Как мне сделать это в стиле ООП, но что бы срабатывали события?