Campos

Los campos son una parte importante de la generación de código, porque definen valores que el usuario puede editar, como cadenas, números y colores, entre otros.

Incluir valores de campo en el código generado implica obtener el valor del campo, transformarla en una cadena utilizable y, luego, concatenar la cadena con el el resto del código.

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;
}

Obtener valores

Se puede acceder a los valores de campo con getFieldValue. ¿Qué se obtiene son diferentes de un campo a otro, así que debes comprobar los elementos campo para obtener información sobre tu campo específico. Para ejemplo, los campos de entrada de texto devuelven el texto exacto que ingresó el usuario, pero los campos muestran una cadena de idioma neutro asociada con el elemento que el usuario seleccionado.

Transforma valores

La mayoría de los valores de campo están listos para concatenarse a la cadena de código de inmediato. Sin embargo, algunos valores de campo requieren trabajo adicional antes de ser utilizables.

Strings

El generador de código debe citar las cadenas antes de que se puedan concatenar.

// 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'));

Variables

El generador de códigos debe depurar los nombres de las variables antes de que se puedan concatenados. Esto es necesario por dos motivos:

  1. El usuario ingresa las variables en el idioma que elija. Esto significa que se deban convertir a caracteres ASCII. Por ejemplo, "متغير" haría se convertirán en "_D9_85_D8_AA_D8_BA_D9_8A_D8_B1".
  2. Las variables pueden entrar en conflicto con palabras reservadas. Esto significa que tal vez debas modificados para que no entren en conflicto. Por ejemplo, "for" se convertirán en “for2
const identifier = generator.getVariableName(block.getFieldValue('VAR'));

Concatena código

Una vez que hayas obtenido el valor de tu campo y lo hayas convertido en una cadena, puedes concatenala en el lugar correcto con tu cadena de código.

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

Código de retorno

Los diferentes tipos de bloques requieren que la cadena de código se muestre en diferentes Por eso, te recomendamos que consultes las páginas individuales para obtener más información: