blockly > WorkspaceSvg

Klasa WorkspaceSvg

Zajęcia dla obszaru roboczego. Jest to obszar na ekranie z opcjonalnym koszem na śmieci, paskami przewijania, dymkami i funkcją przeciągania.

Podpis:

export declare class WorkspaceSvg extends Workspace implements IASTNodeLocationSvg 

Rozszerza się: obszar roboczy

Implementacja: IASTNodeLocationSvg

Zespoły

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

Właściwości

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

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

Warto pomyśleć o widoku i obszarze roboczym, który znajduje się pod tym widokiem. W miarę jak obszar roboczy przesuwa się w prawo, ta wartość staje się bardziej dodatnia – widok „widoczna” jest teraz po jego lewej stronie. W miarę jak obszar roboczy przesuwa się w lewo, ta wartość staje się bardziej ujemna, a widok „widzi” jego prawą stronę.

Problem w tym, że ta wartość nie zawiera takiego elementu i nie może zawierać przesunięcia absoluteLeft. Dzieje się tak, ponieważ służy ona do obliczania wartości viewLeft.

Wartość viewLeft zależy od punktu początkowego obszaru roboczego (chociaż jest wyrażona w pikselach). Pochodzenie obszaru roboczego to jego lewy górny róg (przynajmniej jeśli jest włączony). Jest on przesunięty z lewego górnego rogu obiektu blocklyDiv, aby nie był pod zestawem narzędzi.

Gdy obszar roboczy jest włączony, punkty viewLeft i źródło obszaru roboczego znajdują się w tej samej lokalizacji X. Gdy obszar roboczy przesuwa się w prawo pod widokiem, ta wartość (scrollX) staje się bardziej dodatnia, a viewLeft staje się bardziej ujemna w stosunku do punktu początkowego obszaru roboczego (wyobraź sobie punkt początkowy obszaru roboczego jako kropka przesuwająca się w prawo wraz z przesuwaniem obszaru roboczego).

Jeśli więc element ScrollX uwzględnia wartość absoluteLeft, spowoduje to „cofnięcie przesunięcia” źródła obszaru roboczego. Oznacza to, że element viewLeft będzie reprezentował lewą krawędź elementu blocklyDiv, a nie lewą krawędź obszaru roboczego.

scrollY Liczba

Aktualne przesunięcie w pionie w jednostkach w pikselach względem punktu początkowego obszaru roboczego.

Warto pomyśleć o widoku i obszarze roboczym, który znajduje się pod tym widokiem. W miarę przesuwania się obszaru roboczego ta wartość staje się bardziej dodatnia, a widok „widzie” jego górną część. W miarę przesuwania się obszaru roboczego ta wartość staje się bardziej ujemna, a widok „widzi” jego dolną część.

Co myląca w tej wartości jest to, że tak nie jest i nie może ona zawierać przesunięcia bezwzględnego od góry. Dzieje się tak, ponieważ służy ona do obliczania wartości viewTop.

Wartość viewTop zależy od punktu początkowego obszaru roboczego (chociaż w pikselach). Pochodzenie obszaru roboczego to jego lewy górny róg (przynajmniej jeśli jest włączony). Jest on przesunięty z lewego górnego rogu obiektu blocklyDiv, aby nie był pod zestawem narzędzi.

Gdy obszar roboczy jest włączony, punkty widokowe i źródło obszaru roboczego znajdują się w tej samej lokalizacji Y. Gdy obszar roboczy przesuwa się w dół, ta wartość (scrollY) staje się bardziej dodatnia, a wartość viewTop staje się bardziej ujemna w stosunku do punktu początkowego obszaru roboczego (obraz w punkcie początkowym obszaru roboczego jako kropka przesuwana w dół wraz z przesuwaniem się obszaru roboczego).

Jeśli więc element ScrollY uwzględnia wartość absoluteTop, spowoduje to „cofnięcie” przesunięcia punktu początkowego obszaru roboczego. Oznacza to, że element viewTop będzie reprezentował górną krawędź blocklyDiv, a nie górną krawędź obszaru roboczego.

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

Metody

Metoda Modyfikatory Opis
addTopBlock(block) Dodaje bryłę do listy górnych bloków.
addTopBoundedElement(element) Dodaje element ograniczony do listy elementów ograniczonych do góry.
addTopComment(comment) Dodaje komentarz do listy najpopularniejszych komentarzy.
centerOnBlock(id, blockOnly) Przewiń obszar roboczy, aby wyśrodkować na danej bryle. Jeśli pod bryłą znajdują się inne bryły, obszar roboczy zostanie wyśrodkowany na stosie, chyba że blockOnly ma wartość true (prawda).
cleanUp() Uporządkuj obszar roboczy, porządkując wszystkie bloki w kolumnie.
Wyczyść() Pozbądź się wszystkich bloków w obszarze roboczym, korzystając z optymalizacji, która zapobiega 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 menu, aby od razu wyświetlać nową zmienną.
deleteZmiennaById(id) Usuń zmienną według przekazanego identyfikatora. Zaktualizuj menu, aby od razu pokazać, że zmienna została usunięta.
dispose() Usuń ten obszar roboczy. Odłącz od wszystkich elementów DOM, aby zapobiec wyciekom pamięci.
getAllBlocks(ordered) Znajdź wszystkie bloki w obszarze roboczym. Bloki są opcjonalnie sortowane według pozycji – od góry do dołu (z lekkim odchyleniem od lewej strony lub prawej).
getAudioManager() Pobierz Menedżera dźwięku dla tego obszaru roboczego.
getBlockById(id). Znajdź blokadę o podanym identyfikatorze w tym obszarze roboczym.
getBlocksBoundingBox(), Oblicz ramkę ograniczającą bloki w obszarze roboczym. System 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 w menu.
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 miejsce docelowe przeciągania, po którym zakończyło się zdarzenie wskaźnika.
getFlyout(opt_own) Pobieranie elementu wysuwanego powiązanego z tym obszarem roboczym. W zależności od konfiguracji tego menu może należeć do zestawu narzędzi lub do obszaru roboczego. Jeśli nie ma wysuwania, będzie ona miała wartość null.
getGrid() Pobierz obiekt siatki dla tego obszaru roboczego lub wartość null, jeśli go nie ma.
getInverseScreenCTM(), Pobieranie odwróconego ekranu CTM.
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 wstawieniu obszaru roboczego w DOM.
getRenderer() Pobierz mechanizm renderowania bloków 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 ten element, aby uzyskać jego skalę.
getSvgGroup() Zwraca grupę SVG dla obszaru roboczego.
getTheme() Pobierz obiekt motywu Workspace.
getToolbox() Metoda pobierania 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 w celu wypełnienia niestandardowych kategorii zestawu narzędzi w tym obszarze roboczym.
getTopBlocks(ordered) Znajduje i zwraca bloki najwyższego poziomu. Bloki są opcjonalnie sortowane według pozycji – od góry do dołu (z lekkim odchyleniem od lewej strony lub prawej).
getTopBoundedElements() Znajduje i zwraca elementy ograniczone najwyższego poziomu.
getWidth() Zwraca odsunięcie obszaru roboczego w poziomie. Przeznaczona do zapewnienia zgodności LTR/RTL w formacie XML.
hideChaff(onlyClosePopups) Zamknij etykietki, menu kontekstowe, opcje menu itp.
hideComponents(onlyClosePopups) Ukryj wszystkie automatycznie ukrywane komponenty (takie jak wysuwane, kosz i komponenty zarejestrowane przez użytkownika).
highlightBlock(id, opt_state) Zaznacz lub odznacz bryłę w obszarze roboczym. Podświetlanie blokowe 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 bryłę lub przewija obszar wysuwany/obszar roboczy?
isMovable()

Czy ten obszar roboczy można przenieść?

Oznacza to, że użytkownik może zmienić położenie X i Y obszaru roboczego, używając danych wejściowych. Można to robić za pomocą pasków przewijania, kółka przewijania, przeciągania lub powiększania za pomocą kółka przewijania albo ściągnięcia palcami (powiększenie jest wyśrodkowane na pozycji myszy). Nie dotyczy to powiększania za pomocą elementów sterujących powiększeniem, ponieważ współrzędne X i Y są określane automatycznie.

isMovableHorizontally() Czy ten obszar roboczy można przenieść w poziomie?
isMovableVertically() Czy ten obszar roboczy można przenieść w pionie?
isVisible() Obiekt pobierający dla jest widoczny
markFocused() Oznacz ten obszar roboczy jako obecnie aktywny główny obszar roboczy.
moveDrag(e) Śledzenie przeciągnięcia obiektu w tym obszarze roboczym.
newBlock(prototypeName, opt_id) Uzyskaj nowo utworzony blok.
wklej(stan) Wkleja podany blok lub komentarz do obszaru roboczego. Nie sprawdza, czy obiekt jeszcze nie ma wolnego miejsca. Należy to zrobić przed wywołaniem tej metody.
recordDragTargets() Utwórz listę wszystkich obszarów usuniętych 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 w menu. Na przykład przycisk określony w kodzie XML powinien być dopasowany do wywołania signButtonCallback("CREATE_VARIABLE", yourCallbackFunction).
registerToolboxCategoryCallback(key, func) Zarejestruj funkcję wywołania zwrotnego powiązaną z danym kluczem, aby wypełniać niestandardowe kategorie zestawu narzędzi w tym obszarze roboczym. Posłuż się przykładem kategorii zmiennych i procedur.
removeButtonCallback(key) Usuń wywołanie zwrotne dla kliknięcia przycisku.
removeToolboxCategoryCallback(key) Usunąć wywołanie zwrotne o kliknięciu nazwy kategorii niestandardowej w zestawie narzędzi.
removeTopBlock(block) Usuwa bryłę z listy górnych brył.
removeTopBoundedElement(element) Usuwa ograniczony element z listy elementów ograniczonych do góry.
removeTopComment(comment) Usuwa komentarz z listy najpopularniejszych komentarzy.
renameZmiennaById(identyfikator; nowanazwa) Aby zmienić nazwę zmiennej, zaktualizuj jej nazwę w mapie zmiennych. Zaktualizuj menu, aby od razu wyświetlać zmienną o zmienionej nazwie.
render() Renderuj wszystkie bloki w obszarze roboczym.
resize() Zmieniaj rozmiar i położenie całego obszaru roboczego (obszaru narzędzi, kosza, pasków przewijania itp.) w obszarze roboczym. Należy ją wywoływać, gdy coś się zmieni, co wymaga ponownego obliczenia wymiarów i pozycji kosza, powiększenia, zestawu narzędzi itp. (np. zmiany rozmiaru okna).
scrollCenter() Wyśrodkuj obszar roboczy.
setResizeHandlerWrapper(handler) Zapisz dane modułu do zmiany rozmiaru, abyśmy mogli je później usunąć.
setResizesEnabled(enabled) Określ, czy ten obszar roboczy ma włączoną zmianę rozmiaru. Jeśli ta opcja jest włączona, rozmiar obszaru roboczego będzie się zmieniał w razie potrzeby. Jeśli ta opcja jest wyłączona, rozmiar obszaru roboczego nie zmieni się, dopóki nie zostanie ponownie włączony. Pozwala uniknąć zmiany rozmiaru podczas operacji wsadowej, aby zwiększyć wydajność.
setScale(newScale) Ustaw współczynnik powiększenia obszaru roboczego.
setTheme(theme) Ustaw obiekt motywu obszaru roboczego. Jeśli żaden motyw nie zostanie przekazany, użyj domyślnego motywu 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ąganie obiektu w tym obszarze roboczym.
translate(x, y) Przetłumacz ten obszar roboczy na nowe współrzędne.
updateInverseScreenCTM() Oznacz odwrócony ekran CTM jako brudny.
updateToolbox(toolboxDef) Zmodyfikuj drzewo bloków w istniejącym zestawie narzędzi.
zoom(x; y; kwota) Powiększa lub pomniejsza obszar roboczy względem/wyśrodkowanego na danej współrzędnych (x, y).
zoomCenter(type) Powiększanie brył wyśrodkowanych na środku widoku oraz powiększanie i pomniejszanie.
zoomToFit() Jeśli to możliwe, powiększ bryły, aby zmieściły się w obszarze roboczym.