ค้นหาเว็บไซต์

javascript - วิธีคลิกผ่านวัตถุ fabricjs เพื่อเลือกวัตถุด้านล่าง (โดยไม่ใช้คุณสมบัติ evented)


คุณทำให้วัตถุ fabricjs 'ล็อก' อย่างไร เพื่อที่ว่า:

  1. มันไม่สามารถเลือกได้ (obj.selectable=false)
  2. อนุญาตเหตุการณ์ 'mousedown' สำหรับการคลิกขวา (obj.evented ต้องเป็นจริง)
  3. ไม่มีสถานะ/เหตุการณ์เมื่อเลื่อนเมาส์ (เมาส์ไม่ตรวจจับวัตถุนี้เมื่อเลื่อนหรือไม่เปลี่ยนเคอร์เซอร์)
  4. อนุญาตให้เมาส์คลิกวัตถุที่อยู่ใต้มัน (เมาส์สามารถเข้าถึงวัตถุผ่านมันได้)

ฉันพยายามหาคำสั่งโค้ดที่จัดการกับ prop ที่ชื่อว่า 'evented' แต่ฉันไม่พบมันในซอร์ส โปรไฟล์ evented ทำให้วัตถุโปร่งใส (เช่น สามารถคลิกผ่านมันได้) แต่จะลบเหตุการณ์ 'mousedown' ออกไป

สิ่งนี้จำเป็นในสถานการณ์ของฉันที่ฉันต้องการสร้างเมนูบริบทพร้อมฟีเจอร์ล็อก/ปลดล็อกวัตถุ หากวัตถุถูกล็อก คุณยังต้องสามารถคลิกขวาที่วัตถุนั้นเพื่อแสดงเมนูบริบทอีกครั้งเพื่อปลดล็อกมัน นอกจากนี้ เมื่อวัตถุถูกล็อก คุณยังต้องสามารถเข้าถึงและคลิกวัตถุที่อยู่ใต้มันได้

Fabricjs 3.6.6

แก้ไข: มีคนบอกว่าฟีเจอร์นี้ไม่สามารถทำได้ทันทีจาก Fabric และต้องเขียนโค้ดบางส่วนเพิ่มเติมเพื่อเพิ่มความสามารถนี้ ตามที่: https://github.com/fabricjs/fabric.js/issues/6734