我已经制作了照片编辑网页并遇到了这个问题,严重。
我已经按照以下方式制作了撤销/重做代码。
state = Stack.pop();
canvas.fabric.loadFromJSON(state, function() {
canvas.fabric.renderAll();
});
并且显示清除全白色过程,这会吸引很多人。
我可以删除这个制作另一个画布但是如果必须改变网页的整个结构。
fabric.js中是否有任何功能可以轻松实现?
ex)display-previous-while-rendering?
答案 0 :(得分:0)
在最新版本中,fabricjs可以不使画布闪烁。 如果您不能使用最新版本(2.0.0beta5),请执行以下操作:
socket.on('reconnect_error', (error) => {
alert(error);
});
将fabric.StaticCanvas.prototype.clear = function () {
this._objects.length = 0;
this.backgroundImage = null;
this.overlayImage = null;
this.backgroundColor = '';
this.overlayColor = '';
if (this._hasITextHandlers) {
this.off('mouse:up', this._mouseUpITextHandler);
this._iTextInstances = null;
this._hasITextHandlers = false;
}
this.clearContext(this.contextContainer);
this.fire('canvas:cleared');
this.renderOnAddRemove && this.requestRenderAll();
return this;
};
置于renderAll
bool条件下,不会使画布闪烁,因为loadFromJson进程将该布尔值设置为false。