如何保持对象的属性值

How to keep property value of object?

本文关键字:属性 对象 何保持      更新时间:2024-02-27

这个问题属于fabricJS和canvas。我定义了一个名为background的属性,最初它设置为false。当用户将对象添加到画布时,我需要将对象的属性状态更改为true。

我尝试过使用background = true;,但它改变了整个画布中的属性值。当特定对象添加到画布时,我是如何为其执行此操作的。

如果您希望对象具有背景属性,则需要通过将其添加到原型中,为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 );