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