Przestrzeń nazw Events
Zajęcia
Klasa | Opis |
---|---|
BlockBase | Abstrakcyjna klasa dla każdego zdarzenia związanego z blokami. |
BlockChange | Informuje słuchaczy o zmianie elementów bloku (np.wartości pól, komentarzy itp.). |
BlockCreate | Informuje słuchaczy, gdy zostanie utworzony blok (lub połączony zestaw bloków). |
BlockDelete | powiadamia słuchaczy, gdy blok (lub połączony zestaw bloków) zostanie usunięty; |
BlockDrag | Informuje obiekty nasłuchujące, gdy blok jest przeciągany lub upuszczany ręcznie. |
BlockFieldIntermediateChange | Informuje subskrybentów, gdy zmieni się wartość pola bloku, ale zmiana nie została jeszcze zakończona. Następnie powinien nastąpić kolejny blok zdarzeń zmiany bloku. |
BlockMove | Informuje słuchaczy o przesunięciu bloku. Może to być przejście z jednego połączenia na inne lub z jednej lokalizacji w obszarze roboczym do innej. |
BubbleOpen | Klasa zdarzenia otwarcia okienka. |
Kliknij | Informuje słuchaczy, że kliknięto jakiś element blokady. |
CommentBase | Abstrakcyjna klasa dla zdarzenia komentarza. |
CommentChange | Informuje słuchaczy, że treść komentarza w obszarze roboczym uległa zmianie. |
CommentCollapse | |
CommentCreate | Informuje słuchaczy, że komentarz do obszaru roboczego został utworzony. |
CommentDelete | Informuje słuchaczy, że komentarz w obszarze roboczym został usunięty. |
CommentDrag | Informuje słuchaczy, gdy komentarz jest przeciągany lub przenoszony ręcznie. |
CommentMove | Informuje słuchaczy, że komentarz w obszarze roboczym został przeniesiony. |
CommentResize | Informuje słuchaczy, że rozmiar komentarza w obszarze roboczym został zmieniony. |
FinishedLoading | Powiadomienia odbiorców, gdy workspace zakończy deserializację z JSON/XML. |
Wybrane | Klasa dla wybranego zdarzenia. Informuje słuchaczy o wybraniu nowego elementu. |
ThemeChange | Informuje słuchaczy o zmianie motywu obszaru roboczego. |
ToolboxItemSelect | Informuje słuchaczy, że wybrano element narzędzi. |
TrashcanOpen | powiadamia słuchaczy, gdy kosz jest otwierany lub zamykany; |
UiBase | Klasa podstawowa zdarzenia interfejsu użytkownika. Zdarzenia interfejsu to zdarzenia, które nie muszą być wysyłane przez sieć, aby umożliwić edycję przez wielu użytkowników (np. przewijanie obszaru roboczego, powiększanie, otwieranie kategorii w skrzynce narzędzi). Zdarzenia interfejsu użytkownika nie można cofnąć ani powtórzyć. |
VarBase | Klasa abstrakcyjna dla zmiennego zdarzenia. |
VarCreate | Informuje słuchaczy, że został utworzony model zmienny. |
VarDelete | Informuje słuchaczy, że model zmiennej został usunięty. |
VarRename | Informuje słuchaczy, że nazwa modelu zmiennej została zmieniona. |
VarTypeChange | Informuje słuchaczy o zmianie typu zmiennej. |
ViewportChange | Informuje słuchaczy, że zmieniła się pozycja lub skala powierzchni roboczej. Nie wysyła powiadomienia, gdy zmienia się rozmiar obszaru roboczego. |
Abstrakcyjne zajęcia
Abstrakcyjna klasa | Opis |
---|---|
Streszczenie | Abstrakcyjna klasa zdarzenia. |
Wyliczenia
Wyliczenie | Opis |
---|---|
BubbleType | |
ClickTarget |
Funkcje
Funkcja | Opis |
---|---|
clearPendingUndo() | Modyfikowanie oczekujących zdarzeń anulowania, aby po ich wywołaniu nie trafiały na stos anulowania. Wykonywane przez Workspace.clearUndo. |
disable() | Przestań wysyłać zdarzenia. Każde wywołanie tej funkcji MUSI wywoływać funkcję enable. |
disableOrphans(event) | Ustaw, czy blokada jest wyłączona w zależności od tego, czy jest prawidłowo podłączona. Używaj tego w przypadku aplikacji, w których wszystkie bloki powinny być połączone z blokiem nadrzędnym. |
enable() | Rozpocznij wysyłanie zdarzeń. Zdarzenia nie są wyłączane, jeśli w momencie wywołania odpowiedniej metody wyłączenia były już wyłączone. |
filter(queue) | Filtruj zdarzenia w kolejce, zlewając zduplikowane, usuwając puste i ponownie rejestrując zdarzenia BlockChange. Historia tej funkcji: Ta funkcja została pierwotnie dodana w commitcie cf257ea5 w celu znacznego zmniejszenia łącznej liczby wysyłanych zdarzeń. Początkowo dotyczyło to tylko zdarzeń BlockMove, ale z czasem dodano inne zdarzenia. Dodano kod, który w nieznanych okolicznościach, ale prawdopodobnie w ramach tylko częściowo udanego próby rozwiązania problemów z kolejnością zdarzeń podczas mutacji bloków, zmienia kolejność zdarzeń BlockChange dodanych w commit 5578458. Ten kod powinien zostać dodany na początku funkcji, przed scalaniem i usunięciem wartości null, ale z nieznanych obecnie powodów został dodany na końcu. Aby dowiedzieć się więcej o podstawowym problemie i niektórych niepowodzeniach spowodowanych niepełną lub nieprawidłową poprawką, zapoznaj się z tymi raportami o błędach: https://github.com/google/blockly/issues/8225#issuecomment-2195751783 https://github.com/google/blockly/issues/2037#issuecomment-2209696351 Później w poprawce #1205 pierwotną implementację O(n^2) zastąpiono implementacją o czasie liniowym, ale później wprowadzono dodatkowe poprawki. W sierpniu 2024 r. wprowadziliśmy kilka istotnych uproszczeń: Ta funkcja była wcześniej wywoływana z poziomu Workspace.prototype.undo, ale mutacja zdarzeń przez tę funkcję była przyczyną problemu #7026 (zauważ, że zdarzenia łączyłyby się inaczej w odwrotnej kolejności niż w prostej). Pierwotnie wybranym rozwiązaniem było dodanie (w PR #7069) kodu do wywołania fireNow, aby przefiltrować .undoStack_ i .redoStack_ dowolnej przestrzeni roboczej, która była właśnie zaangażowana w przesyłanie zdarzeń. Rozwiązanie to rozwiązało problem, ale znacznie zwiększyło złożoność i utrudniło analizę sposobu przetwarzania zdarzeń w celu cofnięcia lub powtórzenia. Dlatego usunięto wywołanie z undo oraz kod do dalszego przetwarzania, a wywołanie funkcji z forward=false zostało wycofane. Jednocześnie kod z błędami służący do zmiany kolejności zdarzeń BlockChange został zastąpiony mniej zawodną wersją tej samej funkcji w nowej funkcji enqueueEvent, wywoływanej z poziomu fireInternal, co zapewnia, że zdarzenia będą w prawidłowej kolejności w momencie wywołania filtra. Ponadto kod scalania zdarzeń został zmodyfikowany, aby scalić tylko bezpośrednio sąsiadujące zdarzenia. Dzięki temu uprościliśmy implementację, a jednocześnie zapewniliśmy, że zlanie zdarzeń nie spowoduje zmiany ich kolejności. |
fire(event) | umieszcza w kole zdarzenie do przesłania odbiornikom zmian; Uwagi: – zdarzenia są umieszczane w kole do czasu przekroczenia limitu czasu, zwykle po zakończeniu renderowania lub po zakończeniu bieżącego mikrozadania, jeśli nie są wykonywane w przeglądarce. – Zdarzenia w kole oczekujących mogą ulec zmianie, ponieważ są łączone z później dodanymi zdarzeniami, ale tylko do momentu ich wywołania. – Zdarzenia są wysyłane za pomocą metody fireChangeListener w dotyczącym obszarze roboczym. |
fromJson(json, workspace) | Dekoduj dane JSON na zdarzenie. |
get(eventType) | Pobiera z rejestru klasę dla określonego typu zdarzenia. |
getGroup() | bieżąca grupa; |
getRecordUndo() | Zwraca informację, czy zdarzenia mają być dodawane do stosu cofnięcia. |
isEnabled() | Zwraca, czy zdarzenia mogą być wywoływane. |
setGroup(state) | Rozpocznij lub zatrzymaj grupę. |
setRecordUndo(newValue) | Określa, czy zdarzenia mają być dodawane do stosu cofnięcia. |
Interfejsy
Zmienne
Zmienna | Opis |
---|---|
BLOCK_CHANGE | |
BLOCK_CREATE | |
BLOCK_DELETE | |
BLOCK_DRAG | |
BLOCK_FIELD_INTERMEDIATE_CHANGE | |
BLOCK_MOVE | |
BUBBLE_OPEN | |
BUMP_EVENTS | Lista zdarzeń, które powodują, że obiekty są przesuwane z powrotem do widocznej części obszaru roboczego. Nie należy mylić tego z przesuwaniem, aby odłączone połączenia nie były widoczne jako połączone. |
ZMIANA | |
KLIKNIJ | |
COMMENT_CHANGE | |
COMMENT_CREATE | |
COMMENT_DELETE | |
COMMENT_DRAG | |
COMMENT_MOVE | |
COMMENT_RESIZE | |
UTWÓRZ | |
USUŃ | |
FINISHED_LOADING | |
MOVE | |
WYBRANE | |
THEME_CHANGE | |
TOOLBOX_ITEM_SELECT | |
TRASHCAN_OPEN | |
UI | |
VAR_CREATE | |
VAR_DELETE | |
VAR_RENAME | |
VIEWPORT_CHANGE |
Aliasy typu
Typ aliasu | Opis |
---|---|
BumpEvent | Typ zdarzeń, które powodują, że obiekty są przesuwane z powrotem do widocznej części workspace. Nie należy mylić tego z przesuwaniem, aby odłączone połączenia nie były widoczne jako połączone. |