Menedżer wskaźników

Menedżer wskaźników gromadzi i raportuje wszystkie wskaźniki dotyczące obszaru roboczego Blockly. W tym przewodniku opisano znaczenie każdego zbioru danych zwracanych przez Menedżera wskaźników. Aby dowiedzieć się więcej o Menedżerze wskaźników, możesz też obejrzeć naszą prezentację na temat wskaźników z 2021 roku.

Wskaźniki

Wskaźniki zestawu narzędzi

workspace.getMetricsManager().getToolboxMetrics();

Wskaźniki w zestawie narzędzi składają się z elementów height, width i position zestawu narzędzi kategorii. Nie dotyczy to informacji o wysuwanym panelu dołączonym do zestawu z narzędziami.

Obszar roboczy Blockly ze strzałkami wskazującymi szerokość i wysokość zestawu narzędzi.

position zestawu narzędzi jest typu Blockly.utils.toolbox.Position.

Dane Flyout

workspace.getMetricsManager().getFlyoutMetrics();

Na dane wysuwane składają się height, width i position zestawu narzędzi. Pamiętaj, że nie jest to wysuwane menu dołączone do zestawu narzędzi kategorii. Dotyczy to tylko wysuwanych zestawów narzędzi, jak widać na zdjęciu poniżej.

Obszar roboczy Blockly ze strzałkami pokazującymi szerokość i wysokość wysuwanego menu.

Typ position wysuwanego elementu jest typu Blockly.utils.toolbox.Position.

Dane SVG

workspace.getMetricsManager().getSvgMetrics();

Dane SVG składają się z width i height nadrzędnego pliku SVG obszaru roboczego. W przypadku głównego obszaru roboczego jest to plik SVG z klasą blocklySvg. Obejmuje on widoczny obszar roboczy i zestaw narzędzi.

Obszar roboczy Blockly otoczony niebieskim prostokątem.

Wyświetl wskaźniki

workspace.getMetricsManager().getViewMetrics(opt_getWorkspaceCoordinates);

Na dane o wyświetleniach składają się: height, width, top i left widocznego obszaru. Widoczny obszar to część obszaru roboczego, która jest widoczna. Nie obejmuje to żadnego z tych rodzajów zestawów narzędzi.

Obszar roboczy Blockly z niebieskim prostokątem wokół obszaru bez zestawu narzędzi.

Lewy górny róg znajduje się względem punktu początkowego obszaru roboczego. Gdy przeciągamy po obszarze roboczym, jego górna i lewa pozycja są aktualizowane.

Obszar roboczy Blockly z niebieskim prostokątem wokół obszaru nieuwzględniającego zestawu narzędzi oraz odsunięciem punktu początkowego od lewego górnego rogu.

Dane bezwzględne

workspace.getMetricsManager().getAbsoluteMetrics();

Dane bezwzględne składają się z odsunięcia top i left widocznego obszaru z pliku SVG. W zależności od tego, gdzie znajduje się zestaw narzędzi w obszarze roboczym, jest to zwykle jego szerokość lub wysokość.

Obszar roboczy Blockly z niebieską linią po prawej stronie zestawu narzędzi i nad obszarem roboczym. Obszar roboczy Blockly z poziomym zestawem narzędzi. Po lewej stronie obszaru roboczego i pod zestawem narzędzi znajduje się niebieska linia.

Charakterystyka zawartości

workspace.getMetricsManager().getContentMetrics(opt_getWorkspaceCoordinates);

Na dane o treści składają się height, width, top i left ramki ograniczającej otaczające bloki i komentarze do obszaru roboczego.

Obszar roboczy Blockly z niebieskim polem wokół jego zawartości.

Dane przewijania

workspace.getMetricsManager().getScrollMetrics(opt_getWorkspaceCoordinates);

Dane dotyczące przewijania składają się z height, width, top i left obszaru, który można przewijać. Przewijany obszar roboczy to obszar treści z pewnymi dopełnieniem.

Obszar roboczy Blockly otoczony dużym niebieskim polem.

Systemy współrzędnych

Domyślnie wszystkie wskaźniki obliczone przez Menedżera Metrics są zwracane jako współrzędne piksela. W stosownych przypadkach można uzyskać możliwość uzyskania określonych danych we współrzędnych obszaru roboczego poprzez przekazanie do metod danych parametru true. Na przykład: metricsManager.getViewMetrics(true).

workspaceCoordinate = pixelCoordinates / workspace.scale

Współrzędne obszaru roboczego są zwykle używane w przypadku elementów, które znajdują się w obszarze roboczym, np. bloków i komentarzy do obszaru roboczego. Współrzędne obszaru roboczego nie zmieniają się, gdy użytkownik powiększa i pomniejsza widok.

Zastępowanie wskaźników

Deweloperzy, którzy chcą udostępniać własne dane dotyczące obszaru roboczego, mogą zarejestrować zastępczy obiekt menedżera danych, który implementuje interfejs IMetricsManager lub rozszerza Blockly.MetricsManager.

Przykład znajdziesz we wtyczce Ciągłe narzędzia lub wtyczce Fixed Edges.