Menedżer wskaźników

Menedżer danych zbiera i raportuje wszystkie dane dotyczące obszaru roboczego Blockly. Z tego przewodnika dowiesz się, co oznaczają poszczególne zestawy danych zwracanych przez Menedżera danych. Więcej informacji o Menedżerze wskaźników znajdziesz w naszym szczegółowym omówieniu wskaźników z 2021 roku.

Dane

Dane dotyczące zestawu narzędzi

workspace.getMetricsManager().getToolboxMetrics();

Wskaźniki skrzynki narzędziowej składają się z height, widthposition skrzynki narzędziowej kategorii. Nie obejmuje to informacji z wyskakującego menu, które jest dołączone do przybornika.

Obszar roboczy Blockly ze strzałkami wskazującymi szerokość i wysokość przybornika.

position skrzynki narzędziowej jest typu Blockly.utils.toolbox.Position.

Wskaźniki wysuwane

workspace.getMetricsManager().getFlyoutMetrics();

Wskaźniki wysuwane składają się z height, widthposition wysuwanego przybornika. Pamiętaj, że nie jest to wysuwane menu, które jest dołączone do przybornika kategorii. Dotyczy to tylko wysuwanych przyborników, jak pokazano na zdjęciu poniżej.

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

position wysuwanego menu jest typu Blockly.utils.toolbox.Position.

Dane SVG

workspace.getMetricsManager().getSvgMetrics();

Dane SVG składają się z widthheight nadrzędnego pliku SVG obszaru roboczego. W głównym obszarze roboczym jest to plik SVG z klasą blocklySvg. Ten plik SVG zawiera widoczny obszar roboczy oraz przybornik.

Obszar roboczy Blockly z niebieskim prostokątem wokół niego.

Wyświetl wskaźniki

workspace.getMetricsManager().getViewMetrics(opt_getWorkspaceCoordinates);

Dane wyświetlenia obejmują height, width, topleft obszaru wyświetlania. Widoczny obszar to widoczna część obszaru roboczego. Nie obejmuje to żadnego rodzaju skrzynki narzędziowej.

Obszar roboczy Blockly z niebieskim prostokątem wokół obszaru, który nie obejmuje przybornika.

Lewy górny róg jest określany względem punktu początkowego obszaru roboczego. Podczas przesuwania obszaru roboczego aktualizowana jest pozycja widocznego obszaru w górnej i lewej części.

Obszar roboczy Blockly z niebieskim prostokątem wokół obszaru, który nie obejmuje przybornika, oraz punktem początkowym przesuniętym względem lewego górnego rogu.

Wartości bezwzględne

workspace.getMetricsManager().getAbsoluteMetrics();

Wartości bezwzględne składają się z przesunięcia topleft widocznego obszaru względem nadrzędnego elementu SVG. W zależności od tego, gdzie w obszarze roboczym znajduje się przybornik, jest to zwykle jego szerokość lub wysokość.

Obszar roboczy Blockly z niebieską linią po prawej stronie przybornika i u góry obszaru roboczego. Obszar roboczy Blockly z poziomowym przybornikiem. Po lewej stronie obszaru roboczego i pod przybornikiem znajduje się niebieska linia.

Charakterystyka zawartości

workspace.getMetricsManager().getContentMetrics(opt_getWorkspaceCoordinates);

Wskaźniki treści obejmują height, width, top i left ramki ograniczającej wokół bloków lub komentarzy w obszarze roboczym.

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

Wskaźniki przewijania

workspace.getMetricsManager().getScrollMetrics(opt_getWorkspaceCoordinates);

Wskaźniki przewijania obejmują height, width, topleft obszaru przewijania. W przypadku ruchomego obszaru roboczego obszar przewijania to obszar treści plus pewne dopełnienie.

Obszar roboczy Blockly z dużym niebieskim polem wokół niego.

Systemy współrzędnych

Domyślnie wszystkie dane obliczane przez Menedżera danych są zwracane jako współrzędne pikseli. W odpowiednich przypadkach możesz uzyskać określone dane w współrzędnych obszaru roboczego, przekazując wartość true do metod dotyczących danych. Na przykład:metricsManager.getViewMetrics(true).

workspaceCoordinate = pixelCoordinates / workspace.scale

Współrzędne obszaru roboczego są zwykle używane w przypadku elementów znajdujących się w obszarze roboczym, takich jak bloki i komentarze do obszaru roboczego. Współrzędne obszaru roboczego nie zmieniają się, gdy użytkownik powiększa lub pomniejsza widok.

Zastępowanie danych

Deweloperzy, którzy chcą udostępniać własne dane w przestrzeni roboczej, mogą zarejestrować obiekt menedżera zastępczych danych, który implementuje interfejs IMetricsManager lub rozszerza klasę Blockly.MetricsManager.

Przykładem może być wtyczka Continuous Toolbox lub Fixed Edges.