Цвет заливки на ротатор в конва трансформатора. js - PullRequest
0 голосов
/ 05 августа 2020

Я хочу, чтобы у моего ротатора трансформатора был значок, но сначала я добавляю заливку, чтобы узнать.

  var rot = transformer.findOne('.rotater');
  console.log(rot); //Works fine
  rot.fill('orange'); //Not working. no need for fill-priority  
  layer.batchDraw();

1 Ответ

2 голосов
/ 06 августа 2020

konva@7.0.4 не имеет API для настройки конкретных c якорей Konva.Transformer.

Ваш код не работает, потому что Konva.Transfomer может сбросить свой стиль в любой момент с внутренней функцией tr.update().

В качестве обходного пути вы можете перезаписать метод update и добавить туда свои собственные стили:

const tr = new Konva.Transformer({
  nodes: [shape]
})

tr.update = function() {
  Konva.Transformer.prototype.update.call(tr);
  var rot = this.findOne('.rotater');
  rot.fill('orange');
}

tr.forceUpdate();

layer.add(tr);

Демо: https://jsbin.com/lumisacayo/1/edit?html, js, выход

...