Ценить
Все поля должны содержать значение, являющееся источником истинности данных поля. Значение может быть любого типа (строка, число, массив, дата и т. д.). Поля могут использовать валидаторы для ограничения значений или преобразования в машиночитаемый формат (например, для нормализации форматов дат).
Текст
Все поля содержат текст — простую, удобочитаемую строку, представляющую значение поля. Это не обязательно означает, что они одинаковы. Например, текст в логическом поле может быть «Вкл» или «Выкл», а его значение — true
или false
.
Этот текст отображается, когда блок свернут, для удобства и может быть опционально частью отображения на блоке .
Редактируемые и нередактируемые поля
Как правило, редактируемые поля позволяют пользователю вносить изменения в код, в то время как нередактируемые поля отображают информацию о блоке. При нажатии на редактируемые поля может открываться расширенный редактор.
Доступные для редактирования поля включают:
К нередактируемым полям относятся:
Сериализация
Значение сериализуемого поля кодируется в формате сохранения (JSON или XML). Все редактируемые поля сериализуемы, поскольку их значения динамические. Значения нередактируемых полей обычно не динамические, поэтому они, как правило, не сериализуются.
Сериализованные поля включают в себя:
К несериализованным полям относятся:
Обратите внимание, что поле «Label Serializable» недоступно для редактирования, но сериализуемо. Это означает, что его можно редактировать только программно, а не через видимый пользователю интерфейс. После редактирования его значение кодируется в сгенерированном JSON/XML-файле.
Генерация кода
Помимо соединения и разъединения блоков, поля — единственный способ управления кодом, сгенерированным Blockly. Редактор, предоставляемый полем, позволяет пользователю изменять значение, хранящееся в поле. Генератор блока может затем получить доступ к значению поля для использования в сгенерированном коде.
Дополнительную информацию об использовании значения поля в генераторе см. в разделе Генерация кода поля .
Наблочный дисплей
Отображение поля на блоке представляет собой набор SVG-элементов, представляющих значение поля. Они занимают место на блоке и при изменении размера заставляют блок менять размер. Отображение поля на блоке может быть простым или сложным, в зависимости от потребностей.
Ниже приведены некоторые примеры различных дисплеев на блоках, в порядке возрастания сложности.
Тип поля | Описание |
---|---|
Этикетка | Содержит только текстовый элемент. |
Угол | Содержит фоновый прямоугольник, текстовый элемент и символ градуса. |
Черепаха | Содержит фоновый прямоугольник, текстовый элемент и множество элементов SVG, используемых для создания графического изображения черепахи. |
Редактор отображения
Когда пользователь нажимает на редактируемое поле, в поле может отобразиться редактор произвольной сложности.
Вот несколько примеров различных редакторов, в порядке возрастания сложности.
Тип поля | Описание |
---|---|
Флажок | При нажатии редактор отсутствует. Отображение на блоке обновляется. |
Ввод чисел | Текстовый редактор, наложенный поверх отображения блока. Пользователи могут вводить текст; редактор может менять цвет, указывая на неверные значения. |
Угловой подборщик | В средстве выбора углов имеется как текстовый редактор для ввода чисел, так и перетаскиваемый редактор для визуального выбора углов. |
Другие режимы отображения
Свернутый режим: пользователь сворачивает блок. Блок отображает текстовое представление своих значений, используя текст, возвращаемый отдельными полями.
Режим доступности: пользователи могут использовать программу чтения с экрана или аналогичную технологию для взаимодействия с Blockly. Текст поля может быть озвучен пользователю.