Встроенные и внешние входы

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

Встроенный и внешний варианты блока "count with x from value to value do" Встроенный вариант имеет две строки: верхняя строка содержит "count with x from value to value", а нижняя — "do statement". Входные данные для значений выглядят как вырезанные из внутренней части верхней строки фрагменты пазла. Внешний вариант имеет четыре строки: "count with x", "from value", "to value" и "do statement". Входные данные для значений находятся в конце второй и третьей строк и выглядят как соединительные элементы пазла.

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

JSON

{
  // ...,
  "inputsInline": true
}

JavaScript

init: function() {
  // ...
  this.setInputsInline(true);
}

Когда этому логическому значению присваивается значение true (для встроенных полей ввода):

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

Если установлено значение false (внешние входные данные):

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

Если вам сложно это представить, создайте блоки в инструментах разработчика Blockly и выберите разные настройки для выпадающего списка inputs ( automatic , external , inline ).

Если это логическое значение не определено, Blockly будет использовать эвристические методы, чтобы определить, какой режим является наилучшим. Предполагая, что Blockly сделает правильный выбор, предпочтительнее оставить это поле неопределенным, поскольку переводы на разные языки могут автоматически иметь разные режимы. См. пример "set %1 to %2" (внешние входные данные) и "put %2 in %1" (встроенные входные данные) в разделе " Порядок токенов интерполяции" .

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