फ़ैब्रिक.जेएस में आप कैनवास में सभी पंक्तियों का उपयोग करके प्राप्त कर सकते हैं

objects = canvas.getObjects('line')

लेकिन मेरे पास कुछ ऑब्जेक्ट हैं जो rect और text के समूह हैं।

मैं वस्तुओं को कैसे टैग कर सकता हूं और उन्हें एक समूह के रूप में प्राप्त कर सकता हूं? मैं सभी समूहों का चयन नहीं कर सकता क्योंकि अन्य प्रकार के समूह भी हैं।

यहाँ मेरी समूहीकृत वस्तु है

var profilepic = new fabric.Rect({
        originX: 'center',
        originY: 'center',
        fill: "#000",
        opacity: 0.7,
        strokeDashArray: [5, 5],
        stroke: '#fff',
        width: w,
        height: h
      });
      var text = new fabric.Text(text, {
        fontSize: 30,
        fill: "#fff",
        originX: 'center',
        originY: 'center',
      });
      var group = new fabric.Group([ profilepic, text ], {
        left: x,
        top: y,
        angle: 0,
      });
1
Geon George 5 पद 2018, 18:56

1 उत्तर

सबसे बढ़िया उत्तर

आप किसी भी संपत्ति को ऑब्जेक्ट में जोड़ सकते हैं, ताकि आप अपने समूह को किसी भी तरह से ध्वजांकित कर सकें

var group = new fabric.Group([profilepic, text], {
  left: 0,
  top: 0,
  angle: 0,
  hasRectangle: true
});

और फिर मुझे यकीन नहीं है कि आप अपनी वस्तुओं का चयन कैसे करना चाहते थे, लेकिन आप कुछ ऐसा कर सकते हैं जो आप चाहते हैं:

let rectanglegroups = canvasobj._objects.filter(
  obj => obj.hasRectangle === true
);
rectanglegroups.map(obj => canvasobj.setActiveObject(obj));
4
SpeedOfRound 5 पद 2018, 16:27