ตัวจัดการเมตริก

เครื่องมือจัดการเมตริกจะรวบรวมและรายงานเมตริกทั้งหมดที่เกี่ยวข้องกับพื้นที่ทำงานของ Blockly คู่มือนี้จะอธิบายความหมายของเมตริกแต่ละชุด ที่ได้จากเครื่องมือจัดการเมตริก นอกจากนี้ คุณยังดูเจาะลึกเมตริกปี 2021 สำหรับข้อมูลเพิ่มเติมเกี่ยวกับเครื่องมือจัดการเมตริกได้ด้วย

เมตริก

เมตริกกล่องเครื่องมือ

workspace.getMetricsManager().getToolboxMetrics();

เมตริกกล่องเครื่องมือประกอบด้วย height, width และ position ของกล่องเครื่องมือหมวดหมู่ ซึ่งไม่รวมถึงข้อมูลบนตัวเลื่อนที่แนบอยู่กับกล่องเครื่องมือ

พื้นที่ทำงาน Blockly ที่มีลูกศรแสดงความกว้างและความสูงของกล่องเครื่องมือ

position ของกล่องเครื่องมือเป็นประเภท Blockly.utils.toolbox.Position

เมตริก Flyout

workspace.getMetricsManager().getFlyoutMetrics();

เมตริกแบบ Flyout ประกอบด้วย height, width และ position ของกล่องเครื่องมือแบบเลื่อนออก สิ่งสำคัญที่ควรทราบก็คือ นี่ไม่ใช่หน้าต่างที่ปรากฏที่แนบอยู่กับกล่องเครื่องมือหมวดหมู่ ปัญหานี้เกี่ยวข้องกับกล่องเครื่องมือที่ลอยออกไป ตามที่แสดงในภาพด้านล่างเท่านั้น

พื้นที่ทำงาน Blockly ที่มีลูกศรแสดงความกว้างและความสูงของเส้นกั้น

position ของการบินจัดอยู่ในประเภท Blockly.utils.toolbox.Position

เมตริก SVG

workspace.getMetricsManager().getSvgMetrics();

เมตริก SVG ประกอบด้วย width และ height ของ SVG ระดับบนสุดของพื้นที่ทำงาน สำหรับพื้นที่ทำงานหลัก นี่คือ SVG ที่มีคลาส blocklySvg SVG นี้มีพื้นที่ทำงานที่มองเห็นและกล่องเครื่องมือด้วย

พื้นที่ทำงาน Blockly ที่มีสี่เหลี่ยมผืนผ้าสีฟ้าอยู่รอบๆ

ดูเมตริก

workspace.getMetricsManager().getViewMetrics(opt_getWorkspaceCoordinates);

เมตริกการดูประกอบด้วย height, width, top และ left ของวิวพอร์ต วิวพอร์ตเป็นส่วนของพื้นที่ทำงานที่มองเห็นได้ ซึ่งไม่รวมถึงกล่องเครื่องมือทั้ง 2 ประเภท

พื้นที่ทำงานแบบ Blockly ที่มีสี่เหลี่ยมผืนผ้าสีฟ้าอยู่รอบๆ พื้นที่ซึ่งไม่มีกล่องเครื่องมือ

ด้านซ้ายบนสัมพันธ์กับต้นทางของพื้นที่ทำงาน เมื่อเราลากไปรอบๆ พื้นที่ทำงาน ตำแหน่งด้านบนและด้านซ้ายของวิวพอร์ตจะได้รับการอัปเดต

พื้นที่ทำงานแบบ Blockly ที่มีสี่เหลี่ยมผืนผ้าสีฟ้าอยู่รอบๆ พื้นที่ซึ่งไม่รวมกล่องเครื่องมือและออฟเซ็ตที่แสดงจากมุมซ้ายบน

เมตริกสัมบูรณ์

workspace.getMetricsManager().getAbsoluteMetrics();

เมตริกสัมบูรณ์จะประกอบขึ้นจากออฟเซ็ต top และ left ของวิวพอร์ตจาก Pareng SVG ซึ่งโดยปกติแล้วจะเป็นความกว้างหรือความสูงของกล่องเครื่องมือ ทั้งนี้ขึ้นอยู่กับตำแหน่งของกล่องเครื่องมือบนพื้นที่ทำงาน

พื้นที่ทำงาน Blockly ที่มีเส้นสีน้ำเงินทางด้านขวาของกล่องเครื่องมือและด้านบนของพื้นที่ทำงาน พื้นที่ทำงาน Blockly พร้อมกล่องเครื่องมือแนวนอน มีเส้นสีน้ำเงินทางด้านซ้ายของพื้นที่ทำงานและใต้กล่องเครื่องมือ

ตัวชี้วัดเนื้อหา

workspace.getMetricsManager().getContentMetrics(opt_getWorkspaceCoordinates);

เมตริกเนื้อหาประกอบด้วย height, width, top และ left ของกรอบล้อมรอบบล็อกหรือความคิดเห็นในพื้นที่ทำงาน

พื้นที่ทำงาน Blockly ที่มีกล่องสีน้ำเงินล้อมรอบเนื้อหาของพื้นที่ทำงาน

เมตริกการเลื่อน

workspace.getMetricsManager().getScrollMetrics(opt_getWorkspaceCoordinates);

เมตริกการเลื่อนประกอบด้วย height, width, top และ left ของพื้นที่ที่เลื่อนได้ สำหรับพื้นที่ทำงานที่ย้ายได้ พื้นที่ที่เลื่อนได้คือพื้นที่เนื้อหาบวกกับระยะห่างจากขอบบางส่วน

พื้นที่ทำงาน Blockly ที่มีกล่องสีน้ำเงินขนาดใหญ่ล้อมรอบ

ระบบพิกัด

โดยค่าเริ่มต้น เมตริกทั้งหมดที่คำนวณโดยเครื่องมือจัดการเมตริกจะแสดงผลเป็นพิกัดพิกเซล ในกรณีที่เกี่ยวข้อง จะมีตัวเลือกในการรับเมตริกบางรายการในพิกัดพื้นที่ทำงานโดยการส่งผ่าน true ไปยังเมธอดเมตริก ตัวอย่างเช่น metricsManager.getViewMetrics(true)

workspaceCoordinate = pixelCoordinates / workspace.scale

โดยทั่วไปแล้ว พิกัดพื้นที่ทำงานจะใช้กับรายการที่อยู่ในพื้นที่ทำงาน เช่น บล็อกและความคิดเห็นในพื้นที่ทำงาน พิกัดพื้นที่ทำงานจะไม่เปลี่ยนแปลง เมื่อผู้ใช้ซูมเข้าและออก

การลบล้างเมตริก

นักพัฒนาซอฟต์แวร์ที่ต้องการระบุเมตริกของตนเองสำหรับพื้นที่ทำงานสามารถลงทะเบียนออบเจ็กต์ตัวจัดการเมตริกทดแทนที่ใช้อินเทอร์เฟซ IMetricsManager หรือขยาย Blockly.MetricsManager

ดูตัวอย่างดังกล่าวได้ในปลั๊กอินกล่องเครื่องมือแบบต่อเนื่องหรือในปลั๊กอินคงที่ขอบ