Развели тут срач в моей теме... ><
Вообщем, кажется, я наконец-то понял, поправьте меня, если я туплю.
1. Я создаю конструктор, который должен проинициализировать все мои переменные используемые в данном canvas. Т.е. допустим я использую:
...
var x0Multi
var y0Multi
var x1Multi
var y1Multi
var xMouse
var yMouse
var TEMP = ""
var ActionState = "single"
var Creating = "none"
var InFocus = { H: [], S: [], CvC: [] }
var DATA = []
var conn = []
var vers = []
var edges = []
var cnEdg = 0
var cnCon = 0
var cnVer = 0
var idV = 0
var idE = 0
...
тогда я получу что-то вроде:
var SomeConstructor = function() {
this.x0Multi
this.y0Multi
this.x1Multi
this.y1Multi
this.xMouse
this.yMouse
this.TEMP = ""
this.ActionState = "single"
this.Creating = "none"
this.InFocus = { H: [], S: [], CvC: [] }
this.DATA = []
this.conn = []
this.vers = []
this.edges = []
this.cnEdg = 0
this.cnCon = 0
this.cnVer = 0
this.idV = 0
this.idE = 0
};
2. Все функции я должен переписать в ввиде расширения прототипа. Т.е.:
было
...
function drawMultiSelect() {
ctx.beginPath();
ctx.rect(x0Multi, y0Multi, x1Multi - x0Multi, y1Multi - y0Multi);
console.log(x0Multi + " " + y0Multi + " " + xMouse + " " + yMouse)
ctx.strokeStyle = "rgba(0,0,255,0.5)";
ctx.fillStyle = "rgba(0,0,255,0.3)";
ctx.fill();
ctx.stroke();
}
...
стало:
SomeConstructor.prototype.drawMultiSelect() {
this.ctx.beginPath();
this.ctx.rect(x0Multi, y0Multi, x1Multi - x0Multi, y1Multi - y0Multi);
this.ctx.strokeStyle = "rgba(0,0,255,0.5)";
this.ctx.fillStyle = "rgba(0,0,255,0.3)";
this.ctx.fill();
this.ctx.stroke();
}
остается мне только одно не понятным.
допустим я в конструкторе я определил переменную this.ctx, как потом мне обратиться к ней из функции определенной в прототипе? как к ctx или как к this.ctx?