Generowanie kodu to proces przekształcania bloków w obszarze roboczym w ciąg kodu, który można wykonać.
Generowanie kodu jest bardzo ważne, ponieważ pozwala blokom robić różne rzeczy, np. obliczać wyrażenia arytmetyczne, przemieszczać postać po labiryncie czy konfigurować sklep internetowy.
Blockly nie „uruchamia” bloków bezpośrednio. Zamiast tego generujesz ciągi znaków kodu, a następnie je wykonujesz.
Generatory kodu
Aby wygenerować kod, użyj instancji generatora kodu.
Ten fragment kodu pokazuje, jak wygenerować kod JavaScript dla bloków w przestrzeni roboczej:
// javascriptGenerator is a code generator that makes JavaScript strings.
import {javascriptGenerator} from 'blockly/javascript';
const code = javascriptGenerator.workspaceToCode(myWorkspace);
Więcej informacji o różnych generatorach kodu udostępnianych przez Blockly oraz o tym, jak uzyskać do nich dostęp, znajdziesz w artykule Generatory kodów językowych.
Generatory kodu blokowego
Z każdym blokiem jest powiązany generator kodu bloku, który określa, jaki kod generuje. Generator kodu blokowego musi być zdefiniowany dla każdego języka, który chcesz wygenerować.
Ten fragment kodu definiuje generator kodu bloku JavaScript dla bloku „przesuń do przodu”:
javascriptGenerator.forBlock['my_custom_block'] = function(block, generator) {
const steps = block.getFieldValue('FIELD_NAME');
// moveForward is a function you would have to define yourself and provide
// within your execution context.
return `moveForward(${steps});\n`;
}
Więcej informacji o definiowaniu generatorów kodu blokowego znajdziesz w artykule Generatory kodu blokowego.
Wykonanie
Po wygenerowaniu kodu musisz ustalić, jak go uruchomić. Sposób wykonania zależy od aplikacji i nie jest objęty zakresem Blockly.
Więcej informacji o sposobach wykonywania kodu znajdziesz w artykule Generowanie i uruchamianie kodu.