Pomoc dotycząca blokowania

Możesz udostępnić pomoc dotyczącą blokowania w postaci etykiet i adresu URL pomocy.

Etykietki

Etykiety z podpowiedzią wyświetlają się, gdy użytkownik najedzie kursorem na blok. Jeśli tekst jest długi, zostanie automatycznie przeformatowany.

JSON

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

JavaScript

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

W interfejsie JavaScript API opisy mogą być definiowane jako funkcje zamiast statycznych ciągów tekstowych. Umożliwia to dynamiczną pomoc. Przykład etykiety, która zmienia się w zależności od wybranej opcji menu, znajdziesz na stronie 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];
    });
  }
};

Korzystając z interfejsu JavaScript API, możesz określić funkcję zamiast stałego ciągu tekstowego, który zwraca tekst tooltipa. Umożliwia to tworzenie dynamicznych etykiet. Przykład znajdziesz w sekcji math_arithmetic.

Dostosowywanie

Możesz też dostosować wygląd etykiet za pomocą niestandardowej funkcji renderowania. Utwórz funkcję, która przyjmuje 2 parametry:

  • Po pierwsze, element <div>, w którym renderujesz treści.
  • Po drugie, rzeczywisty element, nad którym znajduje się kursor i dla którego chcesz wyświetlić tekst pomocniczy.

W treści funkcji możesz renderować dowolne treści w elemencie div. Aby uzyskać tekst tooltipa zdefiniowany w bloku, nad którym znajduje się kursor, możesz wywołać funkcję Blockly.Tooltip.getTooltipOfObject(element);, gdzie element to drugi parametr powyżej.

Na koniec zarejestruj tę funkcję, aby Blockly mógł ją wywołać we właściwym momencie:

Blockly.Tooltip.setCustomTooltip(yourFnHere);

Przykład znajdziesz w prezentacji niestandardowych etykiet pomocy.

URL pomocy

Z blokami można powiązać stronę pomocy. Użytkownicy mogą to zrobić, klikając blok prawym przyciskiem myszy i wybierając „Pomoc” z menu kontekstowego. Jeśli ta wartość to null, element „Pomoc” nie jest wyświetlany.

JSON

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

JavaScript

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

Za pomocą interfejsu JavaScript API bloki mogą określać funkcję zamiast statycznego ciągu znaków, który zwraca ciąg znaków adresu URL, co umożliwia dynamiczną pomoc.