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. |