Konva js рисование первой точки при перемещении линии рисования - PullRequest
0 голосов
/ 18 июня 2020

У меня следующая проблема: я использую konva js для создания холста, на котором можно рисовать, например, линии. Кроме того, вы должны иметь возможность перемещать эти линии. Пока здесь нет проблем, с присвоением строкам перетаскиваемых атрибутов все работает нормально. Но когда я перемещаю линии, я все равно рисую точку в начале. Как я могу предотвратить рисование первой точки при перемещении линии? Для начала я использовал простую демонстрацию рисования, поэтому у меня есть событие mousedown для функции рисования

stage.on('mousedown touchstart', function (e) {
  isPaint = true;
  var pos = stage.getPointerPosition();
  lastLine = new Konva.Line({
    stroke: strokeColor,
    strokeWidth: 5,
    draggable: true,
    lineCap: 'round',
    globalCompositeOperation:
      mode === 'brush' ? 'source-over' : 'destination-out',
    points: [pos.x, pos.y],
  });
  layer.add(lastLine);
});

1 Ответ

0 голосов
/ 19 июня 2020
stage.on('mousedown touchstart', function (e) {
  // start drawing only when we are on empty area
  const onEmptySpace = e.target.getLayer() === backgroundLayer;
  if (!onEmptySpace) {
    return;
  }
  isPaint = true;
  var pos = stage.getPointerPosition();
  lastLine = new Konva.Line({
    stroke: strokeColor,
    strokeWidth: 5,
    draggable: true,
    lineCap: 'round',
    globalCompositeOperation:
      mode === 'brush' ? 'source-over' : 'destination-out',
    points: [pos.x, pos.y],
  });
  layer.add(lastLine);
});
...