blockly > WorkspaceSvg

Klasa WorkspaceSvg

Klasa dla obszaru roboczego. Jest to obszar na ekranie z opcjonalnym koszem na śmieci, paskami przewijania, dymkami i przeciąganiem.

Podpis:

export declare class WorkspaceSvg extends Workspace implements IASTNodeLocationSvg 

Rozszerza: Obszar roboczy

Implementacje: IASTNodeLocationSvg

Zespoły

Zespół Modyfikatory Opis
(konstruktor)(opcje) Tworzy nową instancję klasy WorkspaceSvg

Właściwości

Właściwość Modyfikatory Typ Opis
configureContextMenu ((menuOptions: ContextMenuOption[], e: Zdarzenie) => void) | wartość null Deweloperzy mogą zdefiniować tę funkcję, aby dodawać niestandardowe opcje menu do menu kontekstowego obszaru roboczego lub edytować zestaw opcji menu utworzony w obszarze roboczym.
keyboardAccessibilityMode wartość logiczna Wartość Prawda, jeśli tryb ułatwień dostępu klawiatury jest włączony. W przeciwnym razie ma wartość Fałsz.
wyrenderowano wartość logiczna Stan renderowania obszaru roboczego SVG. Zwraca false w przypadku obszarów roboczych bez interfejsu graficznego i prawda w przypadku instancji WorkspaceSvg.
skala liczba Aktualna skala.
pasek przewijania ScrollbarPair | wartość null paski przewijania w tym obszarze roboczym, jeśli występują;
scrollX liczba

Bieżące przesunięcie przewijania w poziomie w jednostkach pikseli względem punktu początkowego obszaru roboczego.

Warto pomyśleć o widoku i obszarze roboczym pod nim. W miarę jak obszar roboczy przesuwa się w prawo, wartość staje się bardziej dodatnia i widok po lewej stronie obszaru roboczego. Gdy obszar roboczy przesuwa się w lewo, wartość staje się bardziej ujemna i widok „widzi” po prawej stronie obszaru roboczego.

Problem w tym, że ta wartość nie zawiera i nie może zawierać przesunięcia bezwzględnego od lewej. Dzieje się tak, ponieważ jest ona używana do obliczania wartości viewLeft.

Parametr viewLeft odnosi się do punktu początkowego obszaru roboczego (choć w jednostkach pikseli). Punkt początkowy obszaru roboczego to jego lewy górny róg (przynajmniej, gdy jest włączony). Pozycja jest przesunięta w lewym górnym rogu sekcji blocklyDiv, aby nie znajdowała się pod przybornikiem.

Gdy obszar roboczy jest włączony, punkt początkowy viewLeft i obszaru roboczego znajdują się w tej samej lokalizacji na osi X. W miarę jak obszar roboczy przesuwa się w prawo pod widokiem, wartość (scrollX) staje się bardziej dodatnia, a widok viewLeft staje się bardziej ujemny w stosunku do źródła obszaru roboczego (wyobraź sobie początek obszaru roboczego jako kropkę na obszarze roboczym przesuwającym się w prawo podczas przesuwania obszaru roboczego).

Gdyby więc element przewijany X uwzględniał parametr absoluteLeft, działałby w sposób „cofnij przesunięcie”. pochodzeniu obszaru roboczego. Oznacza to, że wymiar viewLeft będzie reprezentował lewą krawędź obiektu blocklyDiv, a nie lewą krawędź obszaru roboczego.

scrollY liczba

Bieżące przesunięcie w pionie przewinięcia w pionie w pikselach względem punktu początkowego obszaru roboczego.

Warto pomyśleć o widoku i obszarze roboczym pod nim. W miarę jak obszar roboczy przesuwa się w dół, wartość staje się bardziej dodatnia i widok „widzi”. górnej części obszaru roboczego. W miarę jak obszar roboczy przesuwa się w górę, wartość staje się bardziej ujemna, a widok „widzi” dolną część obszaru roboczego.

Ta wartość nie zawiera informacji o przesunięciu absolutnie od góry i nie może w nim być uwzględniana. Dzieje się tak, ponieważ jest ona używana do obliczania wartości viewTop.

Wartość viewTop odnosi się do punktu początkowego obszaru roboczego (choć w jednostkach pikseli). Punkt początkowy obszaru roboczego to jego lewy górny róg (przynajmniej, gdy jest włączony). Pozycja jest przesunięta w lewym górnym rogu sekcji blocklyDiv, aby nie znajdowała się pod przybornikiem.

Gdy obszar roboczy jest włączony, punkt początkowy viewTop i obszar roboczy znajdują się w tej samej lokalizacji na osi Y. W miarę przesuwania obszaru roboczego w dół ta wartość (scrollY) staje się coraz bardziej ujemna, a element viewTop staje się bardziej ujemny w stosunku do punktu początkowego obszaru roboczego (obraz w punkcie początkowym obszaru roboczego przesuwa się w dół w miarę przesuwania obszaru roboczego).

Gdyby więc element przewijanyY obejmowałby element bezwzględny, działałby w sposób „cofnij przesunięcie”. pochodzeniu obszaru roboczego. Oznacza to, że element viewTop reprezentuje górną krawędź obiektu blocklyDiv, a nie górną krawędź obszaru roboczego.

startScrollX liczba Wartość przewijania w poziomie po rozpoczęciu przewijania w pikselach.
startScrollY liczba Wartość przewijania w pionie po rozpoczęciu przewijania w pikselach.
svgBackground_ SVGElement
svgBlockCanvas_ SVGElement
svgBubbleCanvas_ SVGElement
svgGroup_ SVGElement
themeManager_ protected ThemeManager
kosz Kosz | wartość null Kosz obszaru roboczego (jeśli istnieje).
zoomControls_ ZoomControls | wartość null

Metody

Metoda Modyfikatory Opis
addTopBlock(block) Dodaje bryłę do listy głównych bloków.
addTopBoundedElement(element) Dodaje element ograniczony do listy elementów ograniczonych górnie.
addTopComment(comment) Dodaje komentarz do listy najlepszych komentarzy.
centerOnBlock(id, blockOnly) Przewiń obszar roboczy, aby go wyśrodkować na danej bryle. Jeśli pod blokiem znajdują się inne bloki, obszar roboczy zostanie wyśrodkowany na stosie, chyba że ma wartość blockOnly.
cleanUp() Uporządkuj obszar roboczy, uporządkując wszystkie bryły w kolumnie.
clear() Pozbądź się wszystkich bloków w obszarze roboczym z optymalizacją zapobiegającą zmianie rozmiaru.
createDom(opt_backgroundClass, injectionDiv) Utwórz elementy DOM obszaru roboczego.
createVariable(name, opt_type, opt_id) Utwórz nową zmienną o podanej nazwie. Zaktualizuj wysuwane menu, aby od razu wyświetlać nową zmienną.
deleteVariableById(id) Usuń zmienną na podstawie przekazywanego identyfikatora. Zaktualizuj wysuwane menu, aby od razu było widać, że zmienna została usunięta.
dispose() Pozbądź się tego obszaru roboczego. Odłącz od wszystkich elementów DOM, aby zapobiec wyciekom pamięci.
getAllBlocks(ordered) Znajdź wszystkie bryły w obszarze roboczym. Bloki można opcjonalnie sortować według pozycji. od góry do dołu (z lekkim odchyleniem w kierunku LTR lub RTL).
getAudioManager() Pobierz menedżera dźwięku dla tego obszaru roboczego.
getBlockById(id) Znajdź w tym obszarze roboczym bryłę o określonym identyfikatorze.
getBlocksBoundingBox() Oblicz ramkę ograniczającą bryły w obszarze roboczym. Układ współrzędnych: współrzędne obszaru roboczego.
getBubbleCanvas() Pobierz element SVG, który tworzy powierzchnię bąbelka.
getButtonCallback(key) Pobierz funkcję wywołania zwrotnego powiązaną z danym kluczem dla kliknięć przycisków i etykiet na ekranie.
getCanvas() Pobierz element SVG, który tworzy powierzchnię do rysowania.
getComponentManager() Pobiera menedżera komponentów tego obszaru roboczego.
getCursor() Kursor tego obszaru roboczego.
getDragTarget(e) Zwraca element docelowy przeciągania po zakończeniu zdarzenia wskaźnika.
getFlyout(opt_own) Narzędzie do pobierania wysuwanego obszaru powiązanego z tym obszarem roboczym. To wysuwane menu może należeć do zestawu narzędzi lub do obszaru roboczego, w zależności od jego konfiguracji. Jeśli nie ma menu rozwijanego, będzie to wartość null.
getGrid() Pobierz obiekt siatki dla tego obszaru roboczego lub wartość null, jeśli nie ma żadnego.
getInverseScreenCTM() Metoda pobierania dla odwróconego ekranu CTM.
getLayerManager()
getMarkerManager() Pobierz menedżera znaczników dla tego obszaru roboczego.
getMetricsManager() Pobiera menedżera danych dla tego obszaru roboczego.
getParentSvg() Pobierz element SVG zawierający ten obszar roboczy. Uwaga: zakładamy, że ta funkcja jest wywoływana dopiero po wstrzykiwaniu obszaru roboczego do DOM.
getRenderer() Pobierz blokowy mechanizm renderowania dołączony do tego obszaru roboczego.
getRootWorkspace()
getScale() Pobierz współczynnik powiększenia obszaru roboczego. Jeśli obszar roboczy ma element nadrzędny, wywołujemy go, aby uzyskać skalę obszaru roboczego.
getSvgGroup() Zwraca grupę SVG dla obszaru roboczego.
getTheme() Pobierz obiekt motywu obszaru roboczego.
getToolbox() Narzędzie pobierające dla zestawu narzędzi powiązanego z tym obszarem roboczym, jeśli taki istnieje.
getToolboxCategoryCallback(key) Pobierz funkcję wywołania zwrotnego powiązaną z danym kluczem, aby wypełnić niestandardowe kategorie zestawów narzędzi w tym obszarze roboczym.
getTopBlocks(ordered) Znajduje bloki najwyższego poziomu i zwraca je. Bloki można opcjonalnie sortować według pozycji. od góry do dołu (z lekkim odchyleniem w kierunku LTR lub RTL).
getTopBoundedElements() Znajduje elementy ograniczone najwyższego poziomu i je zwraca.
getWidth() Zwraca przesunięcie obszaru roboczego w poziomie. Służy do zapewniania zgodności LTR/RTL w języku XML.
hideChaff(onlyClosePopups) Zamknij etykietki, menu kontekstowe, opcje menu itp.
hideComponents(onlyClosePopups) Ukrywaj automatycznie możliwe do ukrywania komponenty (np. wysuwanie, kosz i wszystkie komponenty zarejestrowane przez użytkownika).
highlightBlock(id, opt_state) Zaznacz lub odznacz bryłę w obszarze roboczym. Wyróżnianie bloków jest często używane do wizualnego oznaczania aktualnie wykonywanych bloków.
isDraggable() Czy ten obszar roboczy można przeciągać?
isDragging() Czy użytkownik przeciąga obecnie blok lub przewija menu rozwijane/obszar roboczy?
isMovable()

Czy ten obszar roboczy można przenieść?

Oznacza to, że użytkownik może za pomocą danych wejściowych zmienić współrzędne X Y obszaru roboczego. Można to zrobić za pomocą pasków przewijania, kółka przewijania, przeciągania lub powiększania za pomocą kółka przewijania lub ściągania palców (ponieważ powiększenie jest wyśrodkowane w pozycji myszy). Nie obejmuje to powiększania za pomocą elementów sterujących powiększeniem, ponieważ współrzędne X Y są określane automatycznie.

isMovableHorizontally() Czy ten obszar roboczy można przenosić w poziomie?
isMovableVertically() Czy ten obszar roboczy można przenieść w pionie?
isVisible() Narzędzie pobierające dla parametru isVisible
markFocused() Oznacz ten obszar roboczy jako obecnie aktywny główny obszar roboczy.
moveDrag(e) Śledź przeciąganie obiektu w tym obszarze roboczym.
newBlock(prototypeName, opt_id) Uzyskaj nowo utworzony blok.
newComment(id) Pobieranie nowo utworzonego komentarza.
recordDragTargets() Utwórz listę wszystkich usuniętych obszarów roboczych w tym obszarze roboczym.
refreshTheme() Po aktualizacji motywu odśwież wszystkie bloki w obszarze roboczym.
registerButtonCallback(key, func) Zarejestruj funkcję wywołania zwrotnego powiązaną z danym kluczem dla kliknięć przycisków i etykiet na ekranie. Na przykład do przycisku określonego w kodzie XML powinno znajdować się wywołanie requestButtonCallback("CREATE_VARIABLE", Twoja funkcjaCallbackFunction).
registerToolboxCategoryCallback(key, func) Zarejestruj funkcję wywołania zwrotnego powiązaną z danym kluczem, aby wypełniać niestandardowe kategorie zestawów narzędzi w tym obszarze roboczym. Zobacz przykłady zmiennych i kategorii procedur.
removeButtonCallback(key) Usuń wywołanie zwrotne po kliknięciu przycisku w rozwijanym menu.
removeToolboxCategoryCallback(key) Usuń wywołanie zwrotne po kliknięciu nazwy kategorii niestandardowej z przyborów.
removeTopBlock(block) Usuwa bryłę z listy głównych bloków.
removeTopBoundedElement(element) Usuwa ograniczony element z listy elementów ograniczonych na górze.
removeTopComment(comment) Usuwa komentarz z listy najlepszych komentarzy.
renameZmiennaById(id, newName) Zmień nazwę zmiennej, aktualizując jej nazwę w mapie zmiennych. Zaktualizuj wysuwane menu, aby od razu wyświetlać zmienną ze zmienioną nazwą.
render() Renderuj wszystkie bloki w obszarze roboczym.
resize() Zmień rozmiar i położenie całego obszaru roboczego (skrzynki narzędzi, kosza, pasków przewijania itp.) Tę metodę należy wywoływać, gdy coś się zmieni, co wymaga ponownego obliczenia wymiarów i położenia kosza, powiększenia, zestawu narzędzi itp. (np. zmiana rozmiaru okna).
scrollCenter() Wyśrodkuj obszar roboczy.
setResizeHandlerWrapper(handler) Zapisz dane modułu zmiany rozmiaru, abyśmy mogli je później usunąć.
setResizesEnabled(enabled) Określ, czy w tym obszarze roboczym włączona jest opcja zmiany rozmiaru. Jeśli ta opcja jest włączona, rozmiar obszaru roboczego zmienia się w razie potrzeby. Jeśli ta opcja jest wyłączona, obszar roboczy nie będzie się zmieniał, dopóki nie zostanie ponownie włączony. Pozwala uniknąć zmiany rozmiaru podczas operacji wsadowej ze względu na wydajność.
setScale(newScale) Ustaw współczynnik powiększenia obszaru roboczego.
setTheme(theme) Ustaw obiekt motywu obszaru roboczego. Jeśli nie zostanie przekazany żaden motyw, domyślnie zostanie użyty motyw Classic.
setVisible(isVisible) Przełącza widoczność obszaru roboczego. Obecnie ta funkcja jest przeznaczona tylko dla głównego obszaru roboczego.
startDrag(e, xy) Zacznij śledzić przeciągnięcie obiektu w tym obszarze roboczym.
translate(x, y) Przetłumacz ten obszar roboczy na nowe współrzędne.
updateInverseScreenCTM() Oznacz odwrotny ekran CTM jako zabrudzony.
updateToolbox(toolboxDef) Zmodyfikuj drzewo brył w istniejącym przyborniku.
powiększenie(x; y; kwota) Powiększa lub pomniejsza obszar roboczy względem danej współrzędnej (x, y).
zoomCenter(type) Powiększanie lub pomniejszanie brył na środku widoku.
zoomToFit() Jeśli to możliwe, powiększ bryły, aby dopasować je do obszaru roboczego.