0
Я использую следующий код для рисования в холсте html5, но storkeStyle не работает. Я вижу, что в консоли, что this.color изменен, но его сохранение в том же цвете, что и в orignal. (он обновляется при перемещении мыши).Не могу получить холст strokestyle для работы
ctx.lineWidth = pixelRatio * this.lineThickness;
ctx.strokeStyle = "rgba(" + this.color[0] + "," + this.color[1] + "," + this.color[2] + "," + this.color[3] + ")";
ctx.beginPath()
//ctx.beginPath();
//Horizontal
ctx.moveTo(pos[0] * pixelRatio, 0);
ctx.lineTo(pos[0] * pixelRatio, (pos[1] - squareSize2) * pixelRatio);
ctx.moveTo(pos[0] * pixelRatio, (pos[1] + squareSize2) * pixelRatio);
ctx.lineTo(pos[0] * pixelRatio, frameState.size[1] * pixelRatio);
//Vertical
ctx.moveTo(0, pos[1] * pixelRatio);
ctx.lineTo((pos[0] - squareSize2) * pixelRatio, pos[1] * pixelRatio);
ctx.moveTo((pos[0] + squareSize2) * pixelRatio, pos[1] * pixelRatio);
ctx.lineTo(frameState.size[0] * pixelRatio, pos[1] * pixelRatio);
ctx.rect((pos[0] - squareSize) * pixelRatio, (pos[1] - squareSize) * pixelRatio, squareSize2 * pixelRatio, squareSize2 * pixelRatio);
ctx.moveTo((pos[0] - squareSize4) * pixelRatio, pos[1] * pixelRatio);
ctx.lineTo((pos[0] + squareSize4) * pixelRatio, pos[1] * pixelRatio);
ctx.moveTo(pos[0] * pixelRatio, (pos[1] - squareSize4) * pixelRatio);
ctx.lineTo(pos[0] * pixelRatio, (pos[1] + squareSize4) * pixelRatio);
console.log("rgba(" + this.color[0] + "," + this.color[1] + "," + this.color[2] + "," + this.color[3] + ")");
ctx.stroke();
Ваш 'ctx.strokeStyle' отлично работает (при условии, что ваши this.colors являются значениями от 0-255): http://jsfiddle.net/m1erickson/zLr5ajey/ – markE
его работа изначально, но при обновлении в цикле его нет перекрашивание. (приложение находится в openlayers3, поэтому было сложно все это вставить в скрипку) –
Тогда ваша проблема связана с кодом вне кода, который вы указали выше. ;-) – markE