希望有人可以帮我解决这个问题 .
我正在从Json加载画布并在回调函数上试图擦除其中一个对象 .
canvas.loadFromJSON(
json,
function() {
canvas.setWatermark();
canvas.setWidth(arr.width);
canvas.setHeight(arr.height);
canvas.renderAll.bind(canvas)
}
);
fabric.Canvas.prototype.getWatermark = function() {
var object = null,
objects = canvas.getObjects();
for (var i = 0, len = this.size(); i < len; i++) {
if (objects[i].myType && objects[i].myType === 'watermark') {
object = objects[i];
break;
}
}
return object;
};
fabric.Canvas.prototype.setWatermark = function() {
var watermark=canvas.getWatermark();
canvas.remove(watermark);
};
由于某种原因,它不会删除水印 . 当我调试它显示时,现在在画布上有 myType='watermark'
对象 . 但是当代码完成后,我会在画布和对象中看到水印 .
是不是应该在loadfromjson之后回调?
1 回答
在使用之前声明函数 . 作为canvas的原型,您需要使用
this
而不是canvas
来获取canvas函数 .