如何更改组形状中每个形状的相同背景颜色

时间:2013-04-19 06:07:17

标签: javascript canvas html5-canvas fabricjs

我正在使用canvas和fabric.js在asp.net mvc3 web app中做一个项目。我在做的时候有一个问题,我有一个组形状,超过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;
    }

任何人都可以告诉我如何改变团体形状,提前谢谢

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

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

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

1 个答案:

答案 0 :(得分: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);
            }