Конвайс: Трансформаторные весы со сценой

Когда масштаб сцены равен 1 - ручки Transformer отрисовываются нормально (изображение 1), но когда сцена масштабируется - ручки Transformer визуально масштабируются вместе со сценой (изображение 2). Это способ предотвратить такое поведение?

Масштаб сцены равен 1  Масштаб сцены равен 1

Масштаб сцены 0,5

Масштаб сцены 0,5


person Pavel Aksyonov    schedule 01.08.2018    source источник
comment
Какую версию конвы вы используете? Были некоторые связанные исправления.   -  person lavrton    schedule 02.08.2018


Ответы (1)


Если вы обновили масштаб родительского узла (сцены) ПОСЛЕ создания преобразователя, попробуйте обновить его:

transformer.forceUpdate()

Демо: http://jsbin.com/vigedihopo/edit?html,js,output < / а>

Кроме того, вы можете добавить всю фигуру в Konva.Group и масштабировать ее вместо Konva.Stage. Таким образом, Konva.Transformer будет помещен в немасштабируемый контейнер.

person lavrton    schedule 02.08.2018
comment
Обновлено до 2.1.8. Проблема все еще существует. О масштабировании сцены. Мне нужно обрабатывать события window.resize. Значит, масштабировать нужно всю сцену, а не отдельные изображения. Может, есть правильный подход к этому? - person Pavel Aksyonov; 03.08.2018
comment
@PavelAksyonov можешь сделать демо? Я сделал эту демонстрацию: jsbin.com/rokexusalo/edit?html,js,output работает нормально (якоря не маленькие). - person lavrton; 03.08.2018
comment
Вот он: jsbin.com/decosataja/edit?html,js,output. После этапа масштабирования якоря stage.scale () становятся меньше. Просто наведите указатель мыши на круг. - person Pavel Aksyonov; 03.08.2018
comment
@PavelAksyonov Теперь понятно, спасибо за демо. Обновляю ответ. - person lavrton; 04.08.2018
comment
Да! Работает с transformer.forceUpdate(). Думаю, было бы неплохо, если stage.scale() это сделает. - person Pavel Aksyonov; 04.08.2018