我已经尝试了旧的和最新的1.1.13版本的fabricjs,但它们都不能仅对所选对象应用clipTo函数。如果只有一个对象并且需要剪辑它,那么没关系,但是当有更多对象并且尝试仅剪切所选对象时,所有其他对象也会被剪裁。最奇怪的行为是,在选择其他对象之前,剪辑将应用于所选对象,但在选择其他对象并尝试剪切它之后,所有已剪切的对象也会受到影响。 我想使用以下步骤来解决问题。
请记住,我使用clipTo函数动态,而不是在对象初始化期间使用以下函数。
var obj = canvas.getActiveObject();
var roundness = dynamicValue; // get using jquery sliders
if(obj)
obj.clipTo = function(ctx) {
ctx.arc(0, 0, roundness, 0, Math.PI * 2, true);
}
canvas.renderAll();
如何解决这个问题,请帮助。
答案 0 :(得分:2)
保存最后一个activeObject并删除clipTo if activeObject!== lastActive。
var obj = canvas.getActiveObject();
if (!obj) return;
if (lastActive && lastActive !== obj) {
lastActive.clipTo = null;
}
var roundness = Math.round(Math.random() * 60, 2)
obj.clipTo = function (ctx) {
ctx.arc(0, 0, roundness, 0, Math.PI * 2, true);
}
lastActive = obj;
canvas.renderAll();