Namespace „Ereignisse“
Klassen
Klasse | Beschreibung |
---|---|
BlockBase | Abstrakte Klasse für alle Blockereignisse. |
BlockChange | Benachrichtigt Listener, wenn sich ein Element eines Blocks geändert hat (z. B. Feldwerte, Kommentare usw.). |
BlockCreate | Benachrichtigt Listener, wenn ein Block (oder ein verbundener Stapel von Blöcken) erstellt wird. |
BlockDelete | Benachrichtigt Listener, wenn ein Block (oder ein verbundener Blockstapel) gelöscht wird. |
BlockDrag | Benachrichtigt Listener, wenn ein Block manuell verschoben wird. |
BlockFieldIntermediateChange | Benachrichtigt Listener, wenn sich der Wert des Felds eines Blocks geändert hat, die Änderung aber noch nicht abgeschlossen ist und voraussichtlich ein Blockänderungsereignis folgt. |
BlockMove | Benachrichtigt Listener, wenn ein Block verschoben wird. Das kann von einer Verbindung zu einer anderen oder von einem Ort im Arbeitsbereich zu einem anderen sein. |
BubbleOpen | Klasse für ein Ereignis, bei dem eine Bubble geöffnet wird. |
Klick | Benachrichtigt die Zuhörer, dass ein Blockly-Element angeklickt wurde. |
CommentBase | Abstrakte Klasse für ein Kommentarereignis. |
CommentChange | Hörer werden darüber informiert, dass sich der Inhalt eines Arbeitsbereichskommentars geändert hat. |
CommentCollapse | |
CommentCreate | Benachrichtigt die Abonnenten, dass ein Arbeitsbereichskommentar erstellt wurde. |
CommentDelete | Benachrichtigt die Zuhörer, dass ein Kommentar in einem Arbeitsbereich gelöscht wurde. |
CommentDrag | Hörer werden benachrichtigt, wenn ein Kommentar manuell per Drag-and-drop verschoben wird. |
CommentMove | Benachrichtigt die Zuhörer, dass ein Arbeitsbereichskommentar verschoben wurde. |
CommentResize | Benachrichtigt die Abonnenten, dass die Größe eines Arbeitsbereichskommentars geändert wurde. |
FinishedLoading | Benachrichtigt Listener, wenn die Deserialisierung des Arbeitsbereichs aus JSON/XML abgeschlossen ist. |
Ausgewählt | Klasse für ein ausgewähltes Ereignis. Benachrichtigt die Zuhörer, dass ein neues Element ausgewählt wurde. |
ThemeChange | Benachrichtigt die Zuhörer, dass sich das Design des Arbeitsbereichs geändert hat. |
ToolboxItemSelect | Benachrichtigt die Listener, dass ein Tool-Box-Element ausgewählt wurde. |
TrashcanOpen | Benachrichtigt die Zuhörer, wenn der Mülleimer geöffnet oder geschlossen wird. |
UiBase | Basisklasse für ein UI-Ereignis. UI-Ereignisse sind Ereignisse, die nicht über das Netzwerk gesendet werden müssen, damit die Bearbeitung durch mehrere Nutzer funktioniert (z.B. Scrollen im Arbeitsbereich, Zoomen, Öffnen von Toolbox-Kategorien). UI-Ereignisse können nicht rückgängig gemacht oder wiederholt werden. |
VarBase | Abstrakte Klasse für ein variables Ereignis. |
VarCreate | Benachrichtigt die Listener, dass ein variables Modell erstellt wurde. |
VarDelete | Informiert die Abonnenten darüber, dass ein Variablenmodell gelöscht wurde. |
VarRename | Benachrichtigt Listener darüber, dass ein Variablenmodell umbenannt wurde. |
VarTypeChange | Benachrichtigt Listener darüber, dass sich der Typ einer Variablen geändert hat. |
ViewportChange | Benachrichtigt die Listener, dass sich die Position oder der Maßstab der Arbeitsfläche geändert hat. Es werden keine Benachrichtigungen gesendet, wenn sich die Größe des Arbeitsbereichs selbst ändert. |
Abstrakte Klassen
Abstrakte Klasse | Beschreibung |
---|---|
Zusammenfassung | Abstrakte Klasse für ein Ereignis. |
Aufzählungen
Aufzählung | Beschreibung |
---|---|
BubbleType | |
ClickTarget |
Funktionen
Funktion | Beschreibung |
---|---|
clearPendingUndo() | Ändern Sie ausstehende Rückgängig-Ereignisse so, dass sie beim Auslösen nicht in den Rückgängig-Stapel gelangen. Wird von Workspace.clearUndo aufgerufen. |
disable() | Senden Sie keine Ereignisse mehr. Jeder Aufruf dieser Funktion MUSS auch enable aufrufen. |
disableOrphans(event) | Gibt an, ob ein Block deaktiviert ist, je nachdem, ob er richtig angeschlossen ist. Verwenden Sie diese Option für Anwendungen, bei denen alle Blöcke mit einem übergeordneten Block verbunden sein sollen. |
enable() | Senden Sie Ereignisse. Sofern Ereignisse nicht bereits deaktiviert waren, als der entsprechende Deaktivierungsaufruf erfolgt ist. |
filter(queue) | Filtere die Ereignisse in der Warteschlange, indem du Duplikate zusammenführst, Nullereignisse entfernst und BlockChange-Ereignisse neu aufnimmst. Bisherige Versionen dieser Funktion: Diese Funktion wurde ursprünglich im Commit cf257ea5 hinzugefügt, um die Gesamtzahl der gesendeten Ereignisse drastisch zu reduzieren. Ursprünglich betraf es nur BlockMove-Ereignisse, aber im Laufe der Zeit wurden weitere hinzugefügt. Es wurde Code hinzugefügt, um BlockChange-Ereignisse neu anzuordnen, die im Commit 5578458 hinzugefügt wurden. Der Grund dafür ist unklar, aber höchstwahrscheinlich war es Teil eines nur teilweise erfolgreichen Versuchs, Probleme mit der Ereignisreihenfolge bei Blockmutationen zu beheben. Dieser Code sollte wahrscheinlich oben in der Funktion vor dem Zusammenführen und Entfernen von Nullen hinzugefügt werden, wurde aber aus derzeit vergessenen Gründen unten hinzugefügt. In diesen Fehleruntersuchungen finden Sie eine ausführlichere Erläuterung des zugrunde liegenden Problems und einiger Fehler, die aufgrund dieser unvollständigen/falschen Fehlerbehebung aufgetreten sind: https://github.com/google/blockly/issues/8225#issuecomment-2195751783 https://github.com/google/blockly/issues/2037#issuecomment-2209696351 Später, in PR #1205, wurde die ursprüngliche O(n²)-Implementierung durch eine lineare Implementierung ersetzt. Es wurden jedoch noch weitere Fehlerkorrekturen vorgenommen. Im August 2024 wurden einige wichtige Vereinfachungen vorgenommen: Diese Funktion wurde zuvor von Workspace.prototype.undo aufgerufen, aber die Mutation von Ereignissen durch diese Funktion war die Ursache für Problem 7026. Beachten Sie, dass Ereignisse in umgekehrter Reihenfolge anders kombiniert werden als in vorwärtsgerichteter Reihenfolge. Die ursprünglich gewählte Lösung bestand darin, in PR #7069 Code für fireNow hinzuzufügen, um .undoStack_ und .redoStack_ aller Workspaces nach dem Senden von Ereignissen zu filtern. Dadurch wurde das Problem zwar anscheinend behoben, aber die Lösung war deutlich komplexer und es war schwieriger zu verstehen, wie Ereignisse für Undo/Redo verarbeitet werden. Daher wurden sowohl der Aufruf von Undo als auch der Code für die Nachbearbeitung entfernt. „forward=true“ wurde als Standard festgelegt und der Aufruf der Funktion mit „forward=false“ wurde eingestellt. Gleichzeitig wurde der fehlerhafte Code zum Neuanordnen von BlockChange-Ereignissen durch eine weniger fehlerhafte Version derselben Funktion in einer neuen Funktion namens enqueueEvent ersetzt, die von fireInternal aufgerufen wird. So wird sichergestellt, dass Ereignisse zum Zeitpunkt des Aufrufs des Filters in der richtigen Reihenfolge sind. Außerdem wurde der Code zum Zusammenführen von Ereignissen so geändert, dass nur unmittelbar benachbarte Ereignisse zusammengeführt werden. Dadurch wurde die Implementierung vereinfacht und gleichzeitig dafür gesorgt, dass die Ereignisse durch das Zusammenführen nicht neu angeordnet werden. |
fire(event) | Ein Ereignis in die Warteschlange einfügen, das an Änderungs-Listener gesendet werden soll. Hinweise: – Ereignisse werden bis zu einer Zeitüberschreitung in die Warteschlange gestellt, in der Regel nach Abschluss des Renderings oder am Ende des aktuellen Mikrotasks, wenn die Ausführung nicht in einem Browser erfolgt. – In der Warteschlange befindliche Ereignisse können durch Kombination mit später hinzugefügten Ereignissen beschädigt werden, aber nur bis sie ausgelöst werden. – Ereignisse werden über die Methode „fireChangeListener“ im betroffenen Arbeitsbereich gesendet. |
fromJson(json, workspace) | Dekodieren Sie die JSON-Datei in ein Ereignis. |
get(eventType) | Ruft die Klasse für einen bestimmten Ereignistyp aus der Registry ab. |
getGroup() | Aktuelle Gruppe. |
getRecordUndo() | Gibt an, ob Ereignisse dem Rückgängig-Stapel hinzugefügt werden. |
isEnabled() | Gibt an, ob Ereignisse ausgelöst werden können oder nicht. |
setGroup(state) | Eine Gruppe starten oder beenden. |
setRecordUndo(newValue) | Hiermit wird festgelegt, ob Ereignisse dem Rückgängig-Stapel hinzugefügt werden sollen. |
Schnittstellen
Variablen
Variable | Beschreibung |
---|---|
BLOCK_CHANGE | |
BLOCK_CREATE | |
BLOCK_DELETE | |
BLOCK_DRAG | |
BLOCK_FIELD_INTERMEDIATE_CHANGE | |
BLOCK_MOVE | |
BUBBLE_OPEN | |
BUMP_EVENTS | Liste der Ereignisse, die dazu führen, dass Objekte wieder in den sichtbaren Bereich des Arbeitsbereichs geschoben werden. Nicht zu verwechseln mit dem Auffüllen, damit getrennte Verbindungen nicht als verbunden angezeigt werden. |
ÄNDERN | |
KLICKEN | |
COMMENT_CHANGE | |
COMMENT_CREATE | |
COMMENT_DELETE | |
COMMENT_DRAG | |
COMMENT_MOVE | |
COMMENT_RESIZE | |
ERSTELLEN | |
LÖSCHEN | |
FINISHED_LOADING | |
MOVE | |
AUSGEWÄHLT | |
THEME_CHANGE | |
TOOLBOX_ITEM_SELECT | |
TRASHCAN_OPEN | |
Benutzeroberfläche | |
VAR_CREATE | |
VAR_DELETE | |
VAR_RENAME | |
VIEWPORT_CHANGE |
Typaliasse
Typalias | Beschreibung |
---|---|
BumpEvent | Art von Ereignissen, die dazu führen, dass Objekte wieder in den sichtbaren Bereich des Arbeitsbereichs geschoben werden. Nicht zu verwechseln mit dem Auffüllen, damit getrennte Verbindungen nicht als verbunden angezeigt werden. |