Pola

Pola stanowią ważną część generowania kodu, ponieważ definiują wartości, które użytkownik może edytować, np. ciągi znaków, liczby czy kolory.

Uwzględnianie wartości pól w wygenerowanym kodzie wymaga pobrania wartości pola, jest przekształcany w odpowiedni ciąg znaków, a następnie łączy go ze znakiem reszty kodu.

import {javascriptGenerator} from 'blockly/javascript';

javascriptGenerator.forBlock['my_custom_block'] = function(block, generator) {
  // Get the field value.
  const fieldValue = block.getFieldValue('MY_FIELD');

  // Concatenate the code.
  const code = `some code ${fieldValue} some more code`;

  // Return the code.
  return code;
}

Pobierz wartości

Wartości pól można uzyskać za pomocą narzędzia getFieldValue. Korzyści jest różne w zależności od pola, więc sprawdź wbudowany dokumentację z informacjami o konkretnym polu. Dla: Na przykład pola do wprowadzania tekstu zwracają dokładnie taki tekst, jaki został wpisany przez użytkownika, pola zwracają ciąg znaków neutralny dla języka powiązanego z elementem użytkownika. zaznaczono.

Przekształcanie wartości

Większość wartości pól jest gotowa do natychmiastowego połączenia z ciągiem kodu. Jednak niektóre wartości pól wymagają wykonania dodatkowych czynności, zanim będzie można ich użyć.

Strings

Generator kodu musi zacytować ciągi znaków, zanim będzie można je połączyć.

// For a single line text field.
const str = generator.quote_(block.getFieldValue('STR'));

// For a multiline text field.
const str = generator.multiline_quote_(block.getFieldValue('STR'));

Zmienne

Generator kodu musi wyczyścić nazwy zmiennych, zanim będzie można je utworzyć połączone. Jest to konieczne z dwóch powodów:

  1. Zmienne wprowadza użytkownik w wybranym języku. Oznacza to, że może wymagać skonwertowania na znaki ASCII. Na przykład: „متغير” będzie zostaną przekształcone na „_D9_85_D8_AA_D8_BA_D9_8A_D8_B1”.
  2. Zmienne mogą powodować konflikt ze słowami zarezerwowanymi. Oznacza to, że być może będą musieli zmodyfikowane, by nie kolidowały ze sobą. Na przykład: „for” zostanie skonwertowana na „for2”.
const identifier = generator.getVariableName(block.getFieldValue('VAR'));

Połącz kod

Po pobraniu wartości pola i przekonwertowaniu jej na ciąg znaków możesz połącz go w odpowiednim miejscu z ciągiem kodu.

const code = `some code ${value} some more code`;

Kod zwrotu

Różne typy bloków wymagają, aby ciąg kodu był zwracany w różnych , zapoznaj się więc z informacjami o poszczególnych stronach: