Показать сообщение отдельно
  #28 (permalink)  
Старый 03.12.2014, 18:38
Профессор
Отправить личное сообщение для Siend Посмотреть профиль Найти все сообщения от Siend
 
Регистрация: 04.02.2012
Сообщений: 196

Развели тут срач в моей теме... ><

Вообщем, кажется, я наконец-то понял, поправьте меня, если я туплю.

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?
Ответить с цитированием