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 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 in un blocco compresso

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

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 dell'immagine accetta:

Parametro Descrizione
src Una stringa che rimanda a un file immagine raster.
width Deve essere eseguito il casting in un numero diverso da zero.
height Deve essere eseguito il casting in un numero diverso da zero.
opt_alt (Facoltativo) Una stringa che descriva/rappresenti con precisione 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 sull'asse verticale in modalità da destra a sinistra. Il valore predefinito è false. Utile per le icone "gira a sinistra" e "gira 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 comportarsi come i pulsanti esistenti nei blocchi.

Il gestore di clic può essere impostato nel costruttore JavaScript o utilizzando la funzione setOnClickHandler.

Ecco un esempio di gestore on click che comprime il blocco quando viene chiamato.

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

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