0

我正在使用canvas和fabric.js在asp.net mvc3 Web应用程序中做一个项目。我在做的时候有一个问题,我有一个组形状,超过3个矩形连接在一起形成一个形状。现在的问题是在将组形状从 div 拖放到画布之后,组形状的背景颜色应该变为灰色,但组形状中的一个对象形状的背景颜色正在改变。这是到目前为止的代码,我已经完成了改变颜色

 function drawActiveShape(x, y, type) {
        if (activeObject != null) {
            hideToolMenu();
            activeObject.left = x;
            activeObject.top = y;
            js_c_drawing.add(activeObject);
            if (type == 1) {
                activeObject.set('fill', 'gray');
                js_c_drawing.setActiveObject(activeObject);
            } else {
                activeObject.item(0).set('fill', 'gray');
                js_c_drawing.setActiveGroup(activeObject);
            }
            js_c_drawing.calcOffset();
            fabric.instances.push(js_c_drawing);
        }
        activeObject = null;
    }

谁能告诉我如何更改组形状,提前谢谢

从其他条件中删除 item(0) 后,背景颜色正在改变,但拖放不起作用,如果我们放置 1,item(0) 中的另一件事是改变形状颜色意味着它将更改为下一个对象。我保持这样的 else 条件

else {
   activeObject.item(0).item(1).set('fill', 'gray');
   js_c_drawing.setActiveGroup(activeObject);
}

拖放操作正在工作,但任何对象的背景颜色都没有改变

4

1 回答 1

0

最后我通过改变一个词来解决,即改变组作为对象

if (type == 1) {
                activeObject.set('fill', 'gray');
              js_c_drawing.setActiveObject(activeObject);
            } else {
                activeObject.item(0).set('fill', 'gray');
                js_c_drawing.setActiveObject(activeObject);
            }
于 2013-04-20T06:54:29.420 回答