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

Ценить

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

Текст

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

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

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

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

Редактируемые поля включают в себя:

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

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

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

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

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

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

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

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

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

Встроенный дисплей

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

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

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

Отображение редактора

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

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

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

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

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

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

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