0

私はキャンバスとfabric.jsを使用してasp.net mvc3 Webアプリでプロジェクトを行っています。実行中に問題が発生しました.3つ以上の長方形が結合されて1つの形状になっているというグループ形状があります。ここでの問題は、グループ図形を div からキャンバスにドラッグ アンド ドロップした後、グループ図形の背景色が灰色に変わるはずですが、グループ図形の 1 つのオブジェクト図形の背景色が変更されていることです。これまでに行ったコードは次のとおりです。色を変える

 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) を else 条件から削除した後、背景色は変化していますが、ドラッグ アンド ドロップは機能しません。また、item(0) に 1 を配置すると、形状の色が変化し、次のオブジェクトに変化することを意味します。このようにelse条件を維持しました

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

ドラッグ アンド ドロップ操作は機能していますが、オブジェクトの背景色が変化しません

4

1 に答える 1

0

最後に、変更グループである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);
            }
于 2013-04-20T06:54:29.420 に答える