Campi immagine

Un campo immagine memorizza una stringa come valore e una stringa come testo. Il suo valore è l'attributo src dell'immagine, mentre il suo testo è una stringa alt che descrive/rappresenta l'immagine.

Campo immagine

Un blocco con l'etichetta "image:" e un'immagine di una stella gialla.

Campo immagine nel blocco compresso

Lo stesso blocco dopo essere stato compresso. Ha l'etichetta "variabile: *", dove
"*" è il testo alternativo per l'immagine e un bordo destro frastagliato per indicare che è
compresso.

Creazione

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,
        "*"));
  }
};

Il costruttore di immagini accetta:

Parametro Descrizione
src Una stringa che rimanda a un file immagine raster.
width Deve essere convertito in un numero diverso da zero.
height Deve essere convertito in un numero diverso da zero.
opt_alt (Facoltativo) Una stringa che descrive/rappresenta accuratamente l'immagine. Viene utilizzato al posto dell'immagine quando il blocco è compresso. Se è null o undefined, verrà utilizzata una stringa vuota.
opt_onClick (Facoltativo) Una funzione da chiamare quando si fa clic sul campo.
opt_flipRtl (Facoltativo) Un valore booleano. Se true, l'immagine viene capovolta rispetto all'asse verticale quando è in modalità da destra a sinistra. Il valore predefinito è false. Utile per le icone "Svolta a sinistra" e "Svolta a destra".

Serializzazione

I campi immagine non sono serializzabili.

Gestore dei clic

Il campo immagine non accetta un validatore, ma accetta esplicitamente una funzione che viene chiamata ogni volta che si fa clic sul campo. Ciò significa che le immagini possono fungere da pulsanti che si trovano sui blocchi.

Il gestore on click può essere impostato nel costruttore JavaScript o utilizzando la funzione setOnClickHandler.

Di seguito è riportato un esempio di gestore on click che comprime il blocco quando viene chiamato.

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

Una GIF animata che mostra l'immagine su cui viene fatto clic, il blocco che si comprime, un
clic con il tasto destro del mouse per visualizzare il menu contestuale, la scelta di Espandi blocco e
l'espansione del blocco.