Bildfelder

In einem Bildfeld wird ein String als Wert und ein String als Text gespeichert. Der Wert ist das src-Attribut des Bildes, während der Text ein Alt-String ist, der das Bild beschreibt oder darstellt.

Bildfeld

Ein Block mit dem Label „image:“ und einem gelben Stern.

Bildfeld in minimiertem Block

Derselbe Block nach dem Minimieren. Es hat das Label „variable: *“, wobei „*“ der alternative Text für das Bild ist, und einen gezackten rechten Rand, der angibt, dass es minimiert ist.

Erstellung

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

Der Bildkonstruktor nimmt Folgendes an:

Parameter Beschreibung
src Ein String, der auf eine Rasterbilddatei verweist.
width Muss in eine nicht nullwertige Zahl umgewandelt werden.
height Muss in eine nicht nullwertige Zahl umgewandelt werden.
opt_alt (Optional) Ein String, der das Bild genau beschreibt oder darstellt. Dieser Text wird anstelle des Bilds verwendet, wenn der Block minimiert ist. Wenn der Wert null oder undefined ist, wird ein leerer String verwendet.
opt_onClick Optional: Eine Funktion, die aufgerufen wird, wenn auf das Feld geklickt wird.
opt_flipRtl (Optional) Ein boolescher Wert. Bei true wird das Bild im Modus „Von rechts nach links“ entlang der vertikalen Achse gespiegelt. Die Standardeinstellung ist false. Nützlich für Symbole wie „Nach links abbiegen“ und „Nach rechts abbiegen“.

Serialisierung

Bildfelder können nicht serialisiert werden.

Klick-Handler

Das Bildfeld akzeptiert keinen Validator, sondern ausdrücklich eine Funktion, die jedes Mal aufgerufen wird, wenn auf das Feld geklickt wird. Das bedeutet, dass Bilder wie Schaltflächen funktionieren können, die sich in Blöcken befinden.

Der On-Click-Handler kann im JavaScript-Konstruktor oder mit der Funktion setOnClickHandler festgelegt werden.

Hier ist ein Beispiel für einen On-Click-Handler, der den Block minimiert, wenn er aufgerufen wird.

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

Ein animiertes GIF, in dem zu sehen ist, wie auf das Bild geklickt wird, der Block minimiert wird, mit der rechten Maustaste auf das Kontextmenü geklickt wird, „Block maximieren“ ausgewählt wird und der Block maximiert wird.