Campos de imagen

Un campo de imagen almacena una cadena como su valor y una cadena como su texto. Su valor es el src de la imagen, mientras que su texto es una cadena alt que describe o representa la imagen.

Campo de imagen

Un bloque con la etiqueta "image:" y una imagen de una estrella amarilla.

Campo de imagen en un bloque contraído

El mismo bloque después de contraerse. Tiene la etiqueta "variable: *", en la que "*" es el texto alternativo de la imagen, y un borde derecho irregular para mostrar que está contraída.

Creación

JSON

{
  "type": "example_image",
  "message0": "image: %1",
  "args0": [
    {
      "type": "field_image",
      "src": "https://www.gstatic.com/codesite/ph/images/star_on.gif",
      "width": 15,
      "height": 15,
      "alt": "*"
    }
  ]
}

JavaScript

Blockly.Blocks['example_image'] = {
  init: function() {
    this.appendDummyInput()
      .appendField("image:")
      .appendField(new Blockly.FieldImage(
        "https://www.gstatic.com/codesite/ph/images/star_on.gif",
        15,
        15,
        "*"));
  }
};

El constructor de imágenes toma los siguientes parámetros:

Parámetro Descripción
src Es una cadena que apunta a un archivo de imagen ráster.
width Se debe convertir a un número distinto de cero.
height Se debe convertir a un número distinto de cero.
opt_alt (Opcional) Es una cadena que describe o representa con precisión la imagen. Se usa en lugar de la imagen cuando el bloque está contraído. Si es null o undefined, se usará una cadena vacía.
opt_onClick (Opcional) Función que se llamará cuando se haga clic en el campo.
opt_flipRtl (Opcional) Es un valor booleano. Si es true, la imagen se gira sobre el eje vertical cuando está en modo de derecha a izquierda. La configuración predeterminada es false. Es útil para los íconos de "girar a la izquierda" y "girar a la derecha".

Serialización

Los campos de imagen no se pueden serializar.

Controlador de clics

El campo de imagen no acepta un validador, sino que acepta explícitamente una función que se llama cada vez que se hace clic en el campo. Esto significa que las imágenes pueden actuar como botones que existen en los bloques.

El controlador onclick se puede configurar en el constructor de JavaScript o con la función setOnClickHandler.

A continuación, se muestra un ejemplo de un controlador onclick que contrae el bloque cuando se llama.

function() {
    this.getSourceBlock().setCollapsed(true);
}

Un GIF animado que muestra cómo se hace clic en la imagen, cómo se contrae el bloque, cómo se hace clic con el botón derecho para mostrar el menú contextual, cómo se elige Expandir bloque y cómo se expande el bloque.