2016-04-07 6 views
0

Этот вопрос относится к fabricJS и кромка. Я определил свойство с именем background и изначально оно установлено как ложное. Мне нужно изменить состояние свойства объекта как true, когда пользователь добавляет объект в холст.Как сохранить стоимость объекта?

Я пробовал использовать background = true;, но он меняет стоимость недвижимости на весь холст. Как я делаю это для конкретного объекта, когда он добавляется к холсту.

ответ

2

Если вы хотите, чтобы объекты имели свойство фона, вам необходимо оборудовать тип объекта fabric.js свойством background, добавив это прототипу.

fabric.Object.prototype.background = false;

Позже, когда вы добавляете объект, вы можете выбрать целевой объект и Ассинг

myObject.background = true

Если вам необходимо изменить объект, добавляемый, вы можете слушать object:added глобального слушателя на холсте, как это:

myCanvas.on('object:added', function(e) { 
     var object = e.target; 
     object.background = true; 
}); 

Если вы используете сериализации объектов где-то в вашем коде, вам может потребоваться изменить метод сериализации объекта, предоставляемый fabricjs, чтобы добавить недавно добавленное свойство background.

fabric.Object.prototype.toObject = (function (toObject) { 
    return function() { 
     return fabric.util.object.extend(toObject.call(this), { 
      background: this.background 
     }); 
    }; 
})(fabric.Object.prototype.toObject); 
+0

Это работает. Благодарю. – isuru

+0

это правильно. вы можете быть короче на toObject, передавая фон свойства как второй параметр standardObject.toObject (['background', 'othercustomprop ...']) – AndreaBogazzi