#javascript #fabricjs
#javascript #fabricjs
Вопрос:
Мне нужно использовать дополнительные свойства для объектов формы, таких как круг, многоугольник, линия, прямоугольник, … и вместо того, чтобы добавлять их вручную к самому объекту, я бы хотел добавить их глобально ко всем объектам.
Я просмотрел некоторые другие ответы SO, но они всегда относились к одному конкретному объекту, а не ко всем объектам (или ко всем объектам shape).
Кто-нибудь знает, достижимо ли это вообще, и если да, то как?
Комментарии:
1. Что-то вроде
canvas.getObjects().forEach( (obj) => { obj.set("field", value); } )
? Вы также можете добавитьfilter
туда a, если вам нужен только определенный тип объекта.2. Это моя текущая реализация, но я хочу что-то надежное, которое устанавливает их глобально и забывает о них.
Ответ №1:
Добавьте следующую строку в свой код.
fabric.Object.prototype.set("field", "value");
// field: the property you want to set for all types of objects
// value: the value you want to set that field for all types of objects
Вы можете получить доступ к этому свойству в других объектах. например, прямоугольник, Круг, изображение…
fabric.Object.prototype.Rect.field
// It returns "value"
Комментарии:
1. Еще не тестировал его, но приму его, как только вернусь к нему снова, спасибо за ответ!