Блокировать помощь

Вы можете предоставить помощь по блоку в виде всплывающих подсказок и URL-адреса справки.

Подсказки

Подсказки предлагают мгновенную помощь, когда пользователь наводит указатель мыши на блок. Если текст длинный, он будет перенесен автоматически.

JSON

{
  // ...,
  "tooltip": "Tooltip text."
}

JavaScript

init: function() {
  this.setTooltip("Tooltip text.");
}

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

JavaScript

Blockly.Blocks['math_arithmetic'] = {
  init: function() {
    // ...

    // Assign 'this' to a variable for use in the tooltip closure below.
    var thisBlock = this;
    this.setTooltip(function() {
      var mode = thisBlock.getFieldValue('OP');
      var TOOLTIPS = {
        'ADD': Blockly.Msg['MATH_ARITHMETIC_TOOLTIP_ADD'],
        'MINUS': Blockly.Msg['MATH_ARITHMETIC_TOOLTIP_MINUS'],
        'MULTIPLY': Blockly.Msg['MATH_ARITHMETIC_TOOLTIP_MULTIPLY'],
        'DIVIDE': Blockly.Msg['MATH_ARITHMETIC_TOOLTIP_DIVIDE'],
        'POWER': Blockly.Msg['MATH_ARITHMETIC_TOOLTIP_POWER']
      };
      return TOOLTIPS[mode];
    });
  }
};

Используя API JavaScript, блоки могут указывать функцию вместо статической строки, которая возвращает строку подсказки. Это позволяет использовать динамические подсказки. См. пример math_arithmetic .

Настройка

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

  • во-первых, элемент <div> , в котором вы будете отображать содержимое
  • во-вторых, фактический элемент, на который наводится курсор мыши и для которого вы покажете всплывающую подсказку

В теле функции вы можете отображать в div любой контент, который вам нравится. Чтобы получить строку подсказки, определенную для блока, на который наведен курсор, вы можете вызвать Blockly.Tooltip.getTooltipOfObject(element); где element — второй параметр выше.

Наконец, зарегистрируйте эту функцию, чтобы Blockly мог вызвать ее в подходящее время:

Blockly.Tooltip.setCustomTooltip(yourFnHere);

Пример см. в демонстрации «Пользовательские всплывающие подсказки» .

URL-адрес справки

Блоки могут иметь связанную с ними страницу справки. Это доступно пользователям, щелкнув блок правой кнопкой мыши и выбрав «Справка» в контекстном меню. Если это значение равно null , то элемент «Справка» не отображается.

JSON

{
  // ...,
  "helpUrl": "https://en.wikipedia.org/wiki/For_loop"
}

JavaScript

init: function() {
  // ...
  this.setHelpUrl('https://en.wikipedia.org/wiki/For_loop');
}

Используя API JavaScript, блоки могут указывать функцию вместо статической строки, которая возвращает строку URL-адреса, что позволяет использовать динамическую справку.