这个问题属于fabricJS和canvas。我已经定义了一个名为background
的属性,最初设置为false。当用户将对象添加到画布时,我需要将对象的属性状态更改为true。
我尝试过使用background = true;
,但它会在整个画布中更改属性值。我如何在添加到画布时为特定对象执行此操作。
答案 0 :(得分: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 );