Вы можете предоставить помощь по блоку в виде всплывающих подсказок и 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-адреса, что позволяет использовать динамическую справку.