{i>Metrics Manager

Pengelola Metrik mengumpulkan dan melaporkan semua metrik yang berkaitan dengan ruang kerja Blockly. Panduan ini menjelaskan arti setiap kumpulan metrik yang ditampilkan dari Metrics Manager. Untuk informasi selengkapnya tentang Pengelola Metrik, Anda juga dapat menonton Pembahasan Mendalam Metrik 2021.

Metrik

Metrik Toolbox

workspace.getMetricsManager().getToolboxMetrics();

Metrik toolbox terdiri dari height, width, dan position dari kotak peralatan kategori. Ini tidak termasuk informasi tentang menu {i>flyout<i} yang terpasang pada toolbox.

Ruang kerja Blockly dengan panah yang menunjukkan lebar dan tinggi toolbox.

position dari toolbox adalah jenis Blockly.utils.toolbox.Position.

Metrik Flyout

workspace.getMetricsManager().getFlyoutMetrics();

Metrik flyout terdiri dari height, width, dan position dari toolbox flyout. Penting untuk diperhatikan, bahwa ini bukanlah menu {i>flyout<i} yang terpasang pada toolbox kategori. Hal ini hanya berkaitan dengan toolbox flyout seperti yang ditunjukkan pada foto di bawah ini.

Ruang kerja Blockly dengan tanda panah yang menunjukkan lebar dan tinggi flyout.

position dari flyout adalah jenis Blockly.utils.toolbox.Position.

Metrik SVG

workspace.getMetricsManager().getSvgMetrics();

Metrik SVG terdiri dari width dan height dari SVG induk ruang kerja. Untuk ruang kerja utama, ini adalah SVG dengan class blocklySvg. SVG ini mencakup ruang kerja yang terlihat serta toolbox.

Ruang kerja Blockly dengan persegi panjang biru di sekelilingnya.

Melihat Metrik

workspace.getMetricsManager().getViewMetrics(opt_getWorkspaceCoordinates);

Metrik tampilan terdiri dari height, width, top, dan left dari area pandang. Area pandang adalah bagian dari ruang kerja yang terlihat. Ini tidak termasuk jenis toolbox.

Ruang kerja Blockly dengan persegi panjang biru di sekeliling area yang tidak termasuk kotak alat.

Bagian kiri atas sesuai dengan asal ruang kerja. Saat kita menarik ruang kerja, posisi atas dan kiri area pandang akan diperbarui.

Ruang kerja Blockly dengan persegi panjang biru di sekeliling area yang tidak mencakup toolbox, dan titik asal yang ditampilkan offset dari sudut kiri atas.

Metrik Absolut

workspace.getMetricsManager().getAbsoluteMetrics();

Metrik absolut terdiri dari offset top dan left area pandang dari SVG pareng. Bergantung pada letak {i>toolbox<i} di ruang kerja, ini biasanya lebar atau tinggi {i>toolbox<i}.

Ruang kerja Blockly dengan garis biru di sebelah kanan toolbox dan di atas ruang kerja. Ruang kerja Blockly dengan kotak alat horizontal. Terdapat garis biru di sebelah kiri ruang kerja dan di bawah kotak alat.

Metrik Konten

workspace.getMetricsManager().getContentMetrics(opt_getWorkspaceCoordinates);

Metrik konten terdiri dari height, width, top, dan left kotak pembatas di sekitar blok atau komentar ruang kerja.

Ruang kerja Blockly dengan kotak biru di sekeliling konten ruang kerja.

Metrik Scroll

workspace.getMetricsManager().getScrollMetrics(opt_getWorkspaceCoordinates);

Metrik scroll terdiri dari height, width, top, dan left dari area yang dapat di-scroll. Untuk ruang kerja yang dapat dipindahkan, area yang dapat di-scroll adalah area konten ditambah beberapa padding.

Ruang kerja Blockly dengan kotak biru besar di sekelilingnya.

Sistem Koordinat

Secara default, semua metrik yang dihitung oleh Pengelola Metrik ditampilkan sebagai koordinat piksel. Jika memungkinkan, ada opsi untuk mendapatkan metrik tertentu dalam koordinat ruang kerja dengan meneruskan true ke metode metrik. Misalnya, metricsManager.getViewMetrics(true).

workspaceCoordinate = pixelCoordinates / workspace.scale

Koordinat ruang kerja umumnya digunakan untuk item yang berada di ruang kerja, seperti blok dan komentar ruang kerja. Koordinat ruang kerja tidak berubah saat pengguna memperbesar dan memperkecil.

Mengganti Metrik

Developer yang ingin memberikan metrik mereka sendiri untuk ruang kerja dapat mendaftarkan objek pengelola metrik pengganti yang mengimplementasikan antarmuka IMetricsManager atau memperluas Blockly.MetricsManager.

Contohnya dapat ditemukan di plugin Continuous Toolbox atau di plugin Edge Tetap.