Пространство имен событий
Классы
Сорт | Описание |
---|---|
БлокБаза | Абстрактный класс для любого события, связанного с блоками. |
БлокироватьИзменить | Уведомляет слушателей об изменении какого-либо элемента блока (например, значений полей, комментариев и т. д.). |
БлокСоздать | Уведомляет слушателей о создании блока (или связанного стека блоков). |
БлокироватьУдалить | Уведомляет слушателей об удалении блока (или связанного стека блоков). |
БлокДраг | Уведомляет слушателей, когда блок перетаскивается вручную. |
БлокПолеПромежуточноеИзменение | Уведомляет слушателей, когда значение поля блока изменилось, но изменение еще не завершено и, как ожидается, за ним последует событие изменения блока. |
БлокироватьПеремещение | Уведомляет слушателей, когда блок перемещается. Это может быть из одного соединения в другое или из одного места в рабочей области в другое. |
BubbleOpen | Класс для мероприятия по открытию пузыря. |
Нажмите | Уведомляет слушателей о щелчке по какому-либо блочному элементу. |
База комментариев | Абстрактный класс для события комментария. |
КомментарийИзменить | Уведомляет слушателей об изменении содержимого комментария рабочей области. |
КомментарийСвернуть | |
КомментарийСоздать | Уведомляет слушателей о создании комментария к рабочей области. |
КомментарийУдалить | Уведомляет слушателей об удалении комментария к рабочему пространству. |
КомментарийПеретащите | Уведомляет слушателей, когда комментарий перетаскивается вручную. |
КомментарийПереместить | Уведомляет слушателей о том, что комментарий к рабочему пространству был перемещен. |
КомментарийИзменить размер | Уведомляет слушателей об изменении размера комментария рабочей области. |
ЗавершеноЗагрузка | Уведомляет слушателей, когда рабочая область завершила десериализацию из JSON/XML. |
Выбрано | Класс для выбранного события. Уведомляет слушателей о том, что выбран новый элемент. |
ТемаИзменить | Уведомляет слушателей об изменении темы рабочего пространства. |
Панель инструментовВыбрать элемент | Уведомляет слушателей о том, что выбран элемент панели инструментов. |
Мусорное ведроОткрыто | Уведомляет слушателей об открытии или закрытии мусорной корзины. |
УиБасе | Базовый класс для события пользовательского интерфейса. События пользовательского интерфейса — это события, которые не нужно отправлять по сети для работы многопользовательского редактирования (например, прокрутка рабочей области, масштабирование, открытие категорий панели инструментов). События пользовательского интерфейса не отменяют и не восстанавливают. |
VarBase | Абстрактный класс для переменного события. |
VarCreate | Уведомляет слушателей о создании переменной модели. |
VarDelete | Уведомляет слушателей об удалении переменной модели. |
VarRename | Уведомляет слушателей о том, что модель переменной была переименована. |
VarTypeChange | Уведомляет слушателей об изменении типа переменной. |
Видовое окноИзменить | Уведомляет слушателей об изменении положения или масштаба поверхности рабочего пространства. Не уведомляет об изменении размера самого рабочего пространства. |
Абстрактные классы
Абстрактный класс | Описание |
---|---|
Абстрактный | Абстрактный класс для события. |
Перечисления
Перечисление | Описание |
---|---|
Тип пузыря | |
НажмитеЦель |
Функции
Функция | Описание |
---|---|
clearPendingUndo() | Измените ожидающие события отмены так, чтобы при их запуске они не попадали в стек отмены. Вызывается Workspace.clearUndo. |
запрещать() | Остановить отправку событий. Каждый вызов этой функции ДОЛЖЕН также вызывать enable. |
отключитьСироты(событие) | Установите, если блок отключен в зависимости от того, правильно ли он подключен. Используйте это в приложениях, где все блоки должны быть подключены к верхнему блоку. |
давать возможность() | Начать отправку событий. Если только события не были уже отключены, когда был сделан соответствующий вызов для отключения. |
фильтр(очередь) | Отфильтруйте события в очереди, объединив дубликаты, удалив нулевые события и переупорядочив события BlockChange. История этой функции: Эта функция была изначально добавлена в коммите cf257ea5 с намерением резко сократить общее количество отправленных событий. Изначально она влияла только на события BlockMove, но со временем были добавлены и другие. Код был добавлен для переупорядочивания событий BlockChange, добавленных в коммите 5578458, по неопределенным причинам, но, скорее всего, как часть только-частично-успешной попытки исправить проблемы с порядком событий во время мутаций блоков. Этот код, вероятно, должен был быть добавлен в начало функции, перед слиянием и удалением null, но был добавлен в конец по теперь-забытым причинам. См. эти расследования ошибок для более полного обсуждения основной проблемы и некоторых сбоев, которые возникли из-за этого неполного/неправильного исправления: https://github.com/google/blockly/issues/8225#issuecomment-2195751783 https://github.com/google/blockly/issues/2037#issuecomment-2209696351 Позднее, в PR #1205, исходная реализация O(n^2) была заменена реализацией с линейным временем, хотя впоследствии были внесены дополнительные исправления. В августе 2024 года был внесен ряд существенных упрощений: Эта функция ранее вызывалась из Workspace.prototype.undo, но мутация событий этой функцией была причиной проблемы № 7026 (обратите внимание, что события будут по-разному объединяться в обратном порядке по сравнению с прямым). Первоначально выбранным исправлением для этого было добавление (в PR № 7069) кода в fireNow для пост-фильтрации .undoStack_ и .redoStack_ любого рабочего пространства, которое только что было задействовано в отправке событий; это, по-видимому, решило проблему, но добавило значительную дополнительную сложность и затруднило рассуждения о том, как события обрабатываются для отмены/повтора, поэтому и вызов из undo, и код пост-обработки были удалены, а forward=true был сделан значением по умолчанию, в то время как вызов функции с forward=false был объявлен устаревшим. В то же время ошибочный код для переупорядочивания событий BlockChange был заменен менее ошибочной версией той же функциональности в новой функции enqueueEvent, вызываемой из fireInternal, что гарантирует, что события будут располагаться в правильном порядке во время вызова фильтра. Кроме того, код слияния событий был изменен таким образом, чтобы объединялись только непосредственно соседние события. Это упростило реализацию, одновременно гарантируя, что слияние событий не приведет к их переупорядочиванию. |
пожар(событие) | Поставьте событие в очередь для отправки на смену слушателей. Примечания: - События ставятся в очередь до истечения времени ожидания, обычно после завершения рендеринга или в конце текущей микрозадачи, если она не запущена в браузере. - События, поставленные в очередь, могут быть подвергнуты разрушительной модификации путем объединения с событиями, поставленными в очередь позже, но только до тех пор, пока они не будут запущены. - События отправляются с помощью метода fireChangeListener в затронутой рабочей области. |
fromJson(json, рабочее пространство) | Декодировать JSON в событие. |
получить(типсобытия) | Получает класс для определенного типа события из реестра. |
получитьГруппу() | Текущая группа. |
получитьRecordUndo() | Возвращает, будут ли события добавлены в стек отмены. |
isEnabled() | Возвращает, могут ли быть запущены события или нет. |
setGroup(состояние) | Создать или остановить группу. |
setRecordUndo(новое значение) | Устанавливает, следует ли добавлять события в стек отмены. |
Интерфейсы
Переменные
Переменная | Описание |
---|---|
BLOCK_CHANGE | |
БЛОК_СОЗДАТЬ | |
БЛОК_УДАЛИТЬ | |
BLOCK_DRAG | |
BLOCK_FIELD_INTERMEDIATE_CHANGE | |
BLOCK_MOVE | |
ПУЗЫРЬ_ОТКРЫТ | |
СОБЫТИЯ_БУМПА | Список событий, которые приводят к возвращению объектов в видимую часть рабочего пространства. Не путать с подменой, чтобы разъединенные соединения не выглядели соединенными. |
ИЗМЕНЯТЬ | |
ЩЕЛКНИТЕ | |
ИЗМЕНИТЬ_КОММЕНТАРИЙ | |
КОММЕНТАРИЙ_СОЗДАТЬ | |
КОММЕНТАРИЙ_УДАЛИТЬ | |
КОММЕНТАРИЙ_ПЕРЕЗАГРУЗИТЬ | |
КОММЕНТАРИЙ_MOVE | |
ИЗМЕНИТЬ_РАЗМЕР_КОММЕНТАРИЯ | |
СОЗДАВАТЬ | |
УДАЛИТЬ | |
ЗАГРУЗКА_ЗАВЕРШЕНА | |
ДВИГАТЬСЯ | |
ВЫБРАНО | |
ИЗМЕНЕНИЕ_ТЕМЫ | |
TOOLBOX_ITEM_SELECT | |
МУСОРНЫЙ КОНТЕЙНЕР_ОТКРЫТ | |
Пользовательский интерфейс | |
VAR_CREATE | |
VAR_DELETE | |
VAR_RENAME | |
VIEWPORT_CHANGE |
Псевдонимы типа
Тип Псевдоним | Описание |
---|---|
BumpEvent | Тип событий, которые приводят к возвращению объектов в видимую часть рабочего пространства. Не путать с подменой, чтобы разъединенные соединения не выглядели соединенными. |