【问题标题】:how to change the same background color of each shape in group shape如何更改组形状中每个形状的相同背景颜色
【发布时间】:2013-04-20 15:11:30
【问题描述】:

我正在使用 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);
}

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

【问题讨论】:

    标签: javascript canvas html5-canvas fabricjs


    【解决方案1】:

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

    if (type == 1) {
                    activeObject.set('fill', 'gray');
                  js_c_drawing.setActiveObject(activeObject);
                } else {
                    activeObject.item(0).set('fill', 'gray');
                    js_c_drawing.setActiveObject(activeObject);
                }
    

    【讨论】:

      猜你喜欢
      • 2017-09-03
      • 1970-01-01
      • 1970-01-01
      • 2011-12-18
      • 2016-10-23
      • 2018-07-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多