Анатомия поля

Ценить

Все поля должны содержать значение, являющееся источником истинности данных поля. Значение может быть любого типа (строка, число, массив, дата и т. д.). Поля могут использовать валидаторы для ограничения значений или преобразования в машиночитаемый формат (например, для нормализации форматов дат).

Текст

Все поля содержат текст — простую, удобочитаемую строку, представляющую значение поля. Это не обязательно означает, что они одинаковы. Например, текст в логическом поле может быть «Вкл» или «Выкл», а его значение — true или false .

Этот текст отображается, когда блок свернут, для удобства и может быть опционально частью отображения на блоке .

Редактируемые и нередактируемые поля

Как правило, редактируемые поля позволяют пользователю вносить изменения в код, в то время как нередактируемые поля отображают информацию о блоке. При нажатии на редактируемые поля может открываться расширенный редактор.

Доступные для редактирования поля включают:

К нередактируемым полям относятся:

Сериализация

Значение сериализуемого поля кодируется в формате сохранения (JSON или XML). Все редактируемые поля сериализуемы, поскольку их значения динамические. Значения нередактируемых полей обычно не динамические, поэтому они, как правило, не сериализуются.

Сериализованные поля включают в себя:

К несериализованным полям относятся:

Обратите внимание, что поле «Label Serializable» недоступно для редактирования, но сериализуемо. Это означает, что его можно редактировать только программно, а не через видимый пользователю интерфейс. После редактирования его значение кодируется в сгенерированном JSON/XML-файле.

Генерация кода

Помимо соединения и разъединения блоков, поля — единственный способ управления кодом, сгенерированным Blockly. Редактор, предоставляемый полем, позволяет пользователю изменять значение, хранящееся в поле. Генератор блока может затем получить доступ к значению поля для использования в сгенерированном коде.

Дополнительную информацию об использовании значения поля в генераторе см. в разделе Генерация кода поля .

Наблочный дисплей

Отображение поля на блоке представляет собой набор SVG-элементов, представляющих значение поля. Они занимают место на блоке и при изменении размера заставляют блок менять размер. Отображение поля на блоке может быть простым или сложным, в зависимости от потребностей.

Ниже приведены некоторые примеры различных дисплеев на блоках, в порядке возрастания сложности.

Тип поля Описание
Этикетка Содержит только текстовый элемент.
Угол Содержит фоновый прямоугольник, текстовый элемент и символ градуса.
Черепаха Содержит фоновый прямоугольник, текстовый элемент и множество элементов SVG, используемых для создания графического изображения черепахи.

Редактор отображения

Когда пользователь нажимает на редактируемое поле, в поле может отобразиться редактор произвольной сложности.

Вот несколько примеров различных редакторов, в порядке возрастания сложности.

Тип поля Описание
Флажок При нажатии редактор отсутствует. Отображение на блоке обновляется.
Ввод чисел Текстовый редактор, наложенный поверх отображения блока. Пользователи могут вводить текст; редактор может менять цвет, указывая на неверные значения.
Угловой подборщик В средстве выбора углов имеется как текстовый редактор для ввода чисел, так и перетаскиваемый редактор для визуального выбора углов.

Другие режимы отображения

Свернутый режим: пользователь сворачивает блок. Блок отображает текстовое представление своих значений, используя текст, возвращаемый отдельными полями.

Блок черепашьего поля рушится

Режим доступности: пользователи могут использовать программу чтения с экрана или аналогичную технологию для взаимодействия с Blockly. Текст поля может быть озвучен пользователю.