Klasa WorkspaceSvg
Zajęcia w obszarze roboczym. To obszar na ekranie z opcjonalnym koszem, suwakami, bańkami i przeciąganiem.
Podpis:
export declare class WorkspaceSvg extends Workspace implements IContextMenu, IFocusableNode, IFocusableTree
Rozszerza: Workspace
Implements: IContextMenu, IFocusableNode, IFocusableTree
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: Event) => void) | null | Deweloperzy mogą zdefiniować tę funkcję, aby dodać niestandardowe opcje menu do menu kontekstowego obszaru roboczego lub edytować zestaw opcji menu utworzonych przez obszar roboczy. | |
keyboardAccessibilityMode | wartość logiczna | Wartość „Prawda”, jeśli tryb ułatwień dostępu dla klawiatury jest włączony, w przeciwnym razie wartość „Fałsz”. | |
keyboardMoveInProgress | wartość logiczna | Prawda, jeśli trwa przenoszenie („przeciąganie”) zainicjowane za pomocą klawiatury. | |
renderowany | wartość logiczna | Stan renderowania obszaru roboczego SVG. Zwraca wartość false w przypadku obszarów roboczych bez głowy i wartość true w przypadku instancji WorkspaceSvg . |
|
skala | liczba | Bieżąca skala. | |
suwak | ScrollbarPair | null | suwaki tego obszaru roboczego (jeśli istnieją). | |
scrollX | liczba | Bieżący przesunięcie przewijania poziomego w pikselach względem początku obszaru roboczego. Warto pomyśleć o widoku i płótnie poruszającym się pod nim. Gdy płótno przesuwa się w prawo, ta wartość staje się bardziej dodatnia, a widok „widzi” teraz lewą stronę płótna. Gdy przeniesiesz płótno w lewo, ta wartość będzie coraz bardziej ujemna, a widok będzie obejmować prawą stronę płótna. Ta wartość może być myląca, ponieważ nie uwzględnia przesunięcia absoluteLeft i nie może jej uwzględniać. Dzieje się tak, ponieważ jest on używany do obliczania wartości viewLeft. Wartość viewLeft jest względna względem punktu początkowego w pracy (chociaż w pikselach). Punkt początkowy obszaru roboczego to jego lewy górny róg (przynajmniej gdy jest włączony). Jest przesunięty w lewy górny róg blocklyDiv, aby nie znajdował się pod paskiem narzędzi. Gdy obszar roboczy jest włączony, punkt początkowy viewLeft i punkt początkowy workspace znajdują się w tej samej pozycji X. Gdy kanwa przesuwa się w prawo pod widokiem, ta wartość (scrollX) staje się bardziej dodatnia, a wartość viewLeft staje się bardziej ujemna w stosunku do punktu początkowego obszaru roboczego (wyobraź sobie punkt początkowy obszaru roboczego jako kropkę na kanwie przesuwaną w prawo wraz z kanwą). Jeśli więc scrollX zawierałby wartość absoluteLeft, w pewien sposób „przesuwał”by to pochodzenie obszaru roboczego. Oznacza to, że viewLeft będzie reprezentować lewą krawędź blocklyDiv, a nie lewą krawędź obszaru roboczego. |
|
scrollY | liczba | Bieżące przesunięcie pionowe w pikselach względem początku obszaru roboczego. Warto pomyśleć o widoku i płótnie poruszającym się pod nim. Gdy płótno przesuwa się w dół, ta wartość staje się bardziej dodatnia, a widok obejmuje teraz górną część płótna. Gdy kanwa przesuwa się w górę, ta wartość staje się bardziej ujemna, a widok „widzi” dolną część kanwy. Ta wartość może być myląca, ponieważ nie uwzględnia przesunięcia absoluteTop i nie może go uwzględniać. Dzieje się tak, ponieważ jest on używany do obliczania wartości viewTop. Wartość viewTop jest określana względem punktu początkowego obszaru roboczego (chociaż w pikselach). Punkt początkowy obszaru roboczego to jego lewy górny róg (przynajmniej gdy jest włączony). Jest przesunięty w lewy górny róg bloku, aby nie znajdował się pod paskiem narzędzi. Gdy obszar roboczy jest włączony, górna krawędź widoku i początek obszaru roboczego znajdują się w tej samej pozycji na osi Y. Gdy płótno przesuwa się w dół, ta wartość (scrollY) staje się bardziej dodatnia, a wartość viewTop staje się bardziej ujemna w stosunku do punktu początkowego w obszarze roboczym (obraz w punkcie początkowym w obszarze roboczym jako punkt na płótnie przesuwający się w dół wraz z płótnem). Jeśli więc scrollY zawierałby wartość absoluteTop, w pewien sposób „przesuwał”by to początek obszaru roboczego. Oznacza to, że viewTop będzie reprezentować górną krawędź blocklyDiv, a nie górną krawędź obszaru roboczego. |
|
startScrollX | liczba | Wartość przewijania poziomego po rozpoczęciu przewijania w pikselach. | |
startScrollY | liczba | Wartość pionowego przewijania po rozpoczęciu przewijania w pikselach. | |
svgBackground_ | SVGElement | ||
svgBlockCanvas_ | SVGElement | ||
svgBubbleCanvas_ | SVGElement | ||
svgGroup_ | SVGElement | ||
themeManager_ | protected |
ThemeManager | |
kosz | Kosz na śmieci | null | Kosz obszaru roboczego (jeśli występuje). | |
zoomControls_ | ZoomControls | null |
Metody
Metoda | Modyfikatory | Opis |
---|---|---|
addClass(className) | Dodaje klasę CSS do obszaru roboczego. | |
addTopBlock(block) | Dodaje blok do listy najpopularniejszych bloków. | |
addTopBoundedElement(element) | Dodaje ograniczony element do listy najlepszych ograniczonych elementów. | |
addTopComment(comment) | Dodaje komentarz do listy najpopularniejszych komentarzy. | |
canBeFocused() | Zobacz IFocusableNode.canBeFocused. | |
centerOnBlock(id, blockOnly) | Przewiń obszar roboczy, aby umieścić dany blok na środku. Jeśli blok ma inne bloki ułożone pod nim, obszar roboczy zostanie wyśrodkowany na stosie, chyba że parametr blockOnly ma wartość true. | |
cleanUp() | Porządkuj obszar roboczy, układając wszystkie bloki w kolumnie tak, aby się nie nakładały. | |
clear() | Usuń wszystkie bloki w obszarze roboczym, stosując optymalizację, aby zapobiec zmianie rozmiaru. | |
copyOptionsForFlyout() | Tworzy nowy zestaw opcji z opcji tego obszaru roboczego, zawierający tylko wartości istotne dla menu. | |
createDom(opt_backgroundClass, injectionDiv) | Utwórz elementy DOM obszaru roboczego. | |
dispose() | Usuń ten obszar roboczy. Odłącz wszystkie elementy DOM, aby zapobiec wyciekom pamięci. | |
getAbsoluteScale() | Zwraca bezwzględną skalę obszaru roboczego. Skalowanie obszaru roboczego jest mnożnikowe.Jeśli obszar roboczy B (np. edytor modyfikatora) o skali Y jest zagnieżdżony w obszarze roboczym A o skali X, to skuteczna skala obszaru roboczego B to X * Y, ponieważ jako podrzędny względem A jest już przekształcony przez współczynnik skalowania A, a następnie dodatkowo przekształca się sam przez swój własny współczynnik skalowania. Zwykle wszystko działa bez zarzutu, ale w przypadku elementów globalnych (np. edytorów pól), które są wizualnie powiązane z określoną przestrzenią roboczą, ale znajdują się na najwyższym poziomie DOM, a nie są podrzędne powiązanej z nimi przestrzeni roboczej, do prawidłowego renderowania może być potrzebna skala bezwzględna/skuteczna. |
|
getAllBlocks(ordered) | Znajdowanie wszystkich bloków na obszarze roboczym. Bloki są opcjonalnie sortowane według pozycji od góry do dołu (z lewej do prawej lub odwrotnie). | |
getAudioManager() | Uzyskaj dostęp do menedżera dźwięku w tym obszarze roboczym. | |
getBlockById(id) | Znajdź blokada na tym obszarze roboczym o określonym identyfikatorze. | |
getBlocksBoundingBox() | Oblicz ramkę ograniczającą bloków 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 w przypadku kliknięć przycisków i etykiet w wysuwanym menu. | |
getCanvas() | Pobierz element SVG, który tworzy powierzchnię do rysowania. | |
getComponentManager() | Pobiera menedżera komponentów dla tego obszaru roboczego. | |
getCursor() | Kursor w tym obszarze roboczym. | |
getDragTarget(e) | Zwraca obiekt przeciągania, nad którym znajduje się wskaźnik. | |
getFlyout(opt_own) | Metoda gettera menu wysuwanego powiązanego z tym obszarem roboczym. Ten panel może należeć do panelu narzędzi lub do obszaru roboczego w zależności od konfiguracji panelu narzędzi. Jeśli nie ma wyskakującego okienka, ma wartość null. | |
getFocusableElement() | Zobacz IFocusableNode.getFocusableElement. | |
getFocusableTree() | Zobacz IFocusableNode.getFocusableTree. | |
getGrid() | Pobiera obiekt siatki dla tego obszaru roboczego lub wartość null, jeśli nie ma takiego obiektu. | |
getInverseScreenCTM() | Getter dla CTM odwróconego ekranu. | |
getMarkerManager() | Uzyskaj dostęp do menedżera znaczników w tym obszarze roboczym. | |
getMetricsManager() | Pobiera menedżera danych dla tego obszaru roboczego. | |
getNavigator() | Zwraca obiekt odpowiedzialny za koordynację przesuwania fokusu między elementami w tej przestrzeni roboczej w odpowiedzi na polecenia nawigacji za pomocą klawiatury. | |
getNestedTrees() | Zobacz IFocusableTree.getNestedTrees. | |
getParentSvg() | Pobierz element SVG zawierający tę przestrzeń roboczą. Uwaga: zakładamy, że ta metoda jest wywoływana tylko po wstrzyknięciu obszaru roboczego do modelu DOM. | |
getRenderer() | Pobierz renderowanie bloku dołączone do tego obszaru roboczego. | |
getRestoredFocusableNode(previousNode) | Zobacz IFocusableTree.getRestoredFocusableNode. | |
getRootFocusableNode() | Zobacz IFocusableTree.getRootFocusableNode. | |
getRootWorkspace() | ||
getScale() | Pobierz współczynnik powiększenia obszaru roboczego. | |
getSvgGroup() | Zwraca grupę SVG dla obszaru roboczego. | |
getTheme() | Pobierz obiekt motywu obszaru roboczego. | |
getToolbox() | Metoda getter dla toolboxa powiązanego z tym obszarem roboczym, jeśli istnieje. | |
getToolboxCategoryCallback(key) | Pobierz funkcję wywołania zwrotnego powiązaną z danym kluczem, aby wypełnić niestandardowe kategorie w skrzynce narzędzi w tym obszarze roboczym. | |
getTopBlocks(ordered) | Znajduje blokady najwyższego poziomu i zwraca je. Bloki są opcjonalnie sortowane według pozycji od góry do dołu (z lewej do prawej lub odwrotnie). | |
getTopBoundedElements() | Znajduje ograniczone elementy najwyższego poziomu i zwraca je. | |
getWidth() | Zwraca poziomy przesunięcie obszaru roboczego. Służy do zapewnienia zgodności z tekstem zorientowanym w lewy lub w prawo w pliku XML. | |
hideChaff(onlyClosePopups) | Zamknij etykiety, menu kontekstowe, menu wyboru itp. | |
hideComponents(onlyClosePopups) | ukrywać komponenty, które można automatycznie ukryć (np. wyskakujące okienka, kosz i komponenty zarejestrowane przez użytkownika). | |
highlightBlock(id, opt_state) | Zaznacz lub odznacz blok w obszarze roboczym. Podświetlenie bloku jest często używane do wizualnego oznaczania bloków, które są obecnie wykonywane. | |
isDraggable() | Czy ten obszar roboczy można przeciągać? | |
isDragging() | Zwraca wartość „prawda”, jeśli użytkownik wykonuje gest przeciągania lub jeśli trwa przenoszenie zainicjowane za pomocą klawiatury. Gesty przeciągania zwykle polegają na przesuwaniu bloku lub innego elementu na obszarze roboczym lub przewijaniu menu wysuwanego lub obszaru roboczego. Ruchy inicjowane za pomocą klawiatury są realizowane za pomocą infrastruktury przeciągania i mają na celu emulowanie (podzbioru) gestów przeciągania, dlatego należy je traktować jak gesty przeciągania. |
|
isMovable() | Czy ten obszar roboczy można przenosić? Oznacza to, że użytkownik może zmienić położenie współrzędnych XY w przestrzeni roboczej za pomocą danych wejściowych. Możesz to zrobić za pomocą suwaka, kółka przewijania, przeciągania lub powiększenia za pomocą kółka przewijania lub gestu pinch (powiększenie jest wyśrodkowane na pozycji myszy). Nie dotyczy to powiększania za pomocą elementów sterujących, ponieważ współrzędne XY są ustalane programowo. |
|
isMovableHorizontally() | Czy ten obszar roboczy można przesuwać w poziomie? | |
isMovableVertically() | Czy ten obszar roboczy można przesuwać w pionie? | |
isVisible() | Getter dla isVisible | |
lookUpFocusableNode(id) | Zobacz IFocusableTree.lookUpFocusableNode. | |
markFocused() | Oznacz ten obszar roboczy jako aktualnie skupiony obszar roboczy główny. | |
moveDrag(e) | Śledzenie przeciągania obiektu w tym obszarze roboczym. | |
newBlock(prototypeName, opt_id) | Uzyskaj nowo utworzony blok. | |
newComment(id) | Uzyskać nowo utworzony komentarz. | |
onNodeBlur() | Zobacz IFocusableNode.onNodeBlur. | |
onNodeFocus() | Zobacz IFocusableNode.onNodeFocus. | |
onTreeBlur(nextTree) | Zobacz IFocusableTree.onTreeBlur. | |
onTreeFocus(_node, _previousTree) | Zobacz IFocusableTree.onTreeFocus. | |
recordDragTargets() | Utwórz listę wszystkich obszarów do usunięcia w tym obszarze roboczym. | |
refreshTheme() | odświeżanie wszystkich bloków na obszarze roboczym po aktualizacji motywu; | |
registerButtonCallback(key, func) | Zarejestruj funkcję wywołania zwrotnego powiązaną z danym kluczem, aby umożliwić klikanie przycisków i etykietek w wyskakującym okienku. Na przykład przycisk określony w pliku XML powinien być dopasowywany przez wywołanie funkcji registerButtonCallback("CREATE_VARIABLE", yourCallbackFunction). | |
registerToolboxCategoryCallback(key, func) | Zarejestruj funkcję wywołania zwrotnego powiązaną z danym kluczem, aby wypełnić niestandardowe kategorie w skrzynce narzędzi w tym obszarze roboczym. Przykładem są zmienne i kategorie procedur. | |
removeButtonCallback(key) | Usuń wywołanie zwrotne po kliknięciu przycisku w wysuwanym menu. | |
removeClass(className) | usuwa klasę CSS z obszaru roboczego. | |
removeToolboxCategoryCallback(key) | Usuń wywołanie zwrotne po kliknięciu nazwy kategorii niestandardowej w skrzynce narzędzi. | |
removeTopBlock(block) | Usuwa blok z listy najlepszych bloków. | |
removeTopBoundedElement(element) | Usuwa ograniczony element z listy najlepszych ograniczonych elementów. | |
removeTopComment(comment) | Usuwanie komentarza z listy najlepszych komentarzy. | |
render() | Wyrenderuj wszystkie bloki w obszarze roboczym. | |
resize() | Zmieniać rozmiar i położenie wszystkich elementów interfejsu (np. paska narzędzi, kosza, suwaka). Należy ją wywołać, gdy nastąpi zmiana, która wymaga ponownego obliczenia wymiarów i położenia kosza, narzędzia Zoom, panelu narzędzi itp. (np. zmiana rozmiaru okna). | |
scroll(x, y) | Przesuń obszar roboczy o określony offset (w pikselach), pozostając w jego granicach. Więcej informacji o znaczeniu tych wartości znajdziesz w komentarzu dotyczącym workspaceSvg.scrollX. | |
scrollCenter() | Wyśrodkuj obszar roboczy. | |
setIsReadOnly(readOnly) | ||
setNavigator(newNavigator) | Ustawia instancję Navigatora używaną przez ten obszar roboczy. | |
setResizeHandlerWrapper(handler) | Zapisz dane modułu obsługi zmiany rozmiaru, aby można je było usunąć później w metodzie dispose. | |
setResizesEnabled(enabled) | Zaktualizuj, czy w tym obszarze roboczym jest włączone zmienianie rozmiaru. Jeśli ta opcja jest włączona, obszar roboczy będzie odpowiednio zmieniać rozmiar. Jeśli jest wyłączona, obszar roboczy nie zmieni rozmiaru, dopóki nie zostanie ponownie włączony. Użyj tego parametru, aby uniknąć zmiany rozmiaru podczas operacji zbiorczej, co poprawi wydajność. | |
setScale(newScale) | Ustaw współczynnik powiększenia obszaru roboczego. | |
setTheme(theme) | Ustaw obiekt motywu obszaru roboczego. Jeśli nie podasz motywu, zostanie użyty motyw domyślny Classic . |
|
setVisible(isVisible) | Przełącza widoczność obszaru roboczego. Obecnie jest przeznaczona tylko do głównej przestrzeni roboczej. | |
startDrag(e, xy) | Rozpocznij śledzenie przeciągania 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) | Zmień drzewo bloków w dotychczasowym zestawie narzędzi. | |
zoom(x, y, amount) | Powiększa lub pomniejsza obszar roboczy względem środka lub względem podanych współrzędnych (x, y). | |
zoomCenter(type) | powiększanie lub pomniejszanie widoku, aby bloki były wyśrodkowane w centrum; | |
zoomToFit() | W miarę możliwości powiększ bloki, aby zmieściły się na obszarze roboczym. |