画像フィールド

画像フィールドは、値を文字列として、テキストを文字列として保存します。値は画像の src で、テキストは画像を説明または表現する alt 文字列です。

画像フィールド

「image:」というラベルと黄色の星の画像を含むブロック。

折りたたまれたブロックの画像フィールド

折りたたまれた後の同じブロック。「変数: *」というラベルが付いています。ここで、「*」は画像の代替テキストです。右端がギザギザになっているのは、折りたたまれていることを示すためです。

作成

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

イメージ コンストラクタは次のものを取ります。

パラメータ 説明
src ラスター画像ファイルを指す文字列。
width ゼロ以外の数値にキャストする必要があります。
height ゼロ以外の数値にキャストする必要があります。
opt_alt (省略可)画像を正確に説明または表現する文字列。ブロックが折りたたまれたときに、画像の代わりに使用されます。null または undefined の場合は、空の文字列が使用されます。
opt_onClick (省略可)フィールドがクリックされたときに呼び出す関数。
opt_flipRtl (省略可)ブール値。true の場合、右から左へのモードでは、画像は垂直軸を基準に反転します。デフォルトは false です。「左折」アイコンや「右折」アイコンに便利です。

シリアル化

画像フィールドはシリアル化できません。

クリック ハンドラ

イメージ フィールドはバリデータを受け入れません。代わりに、フィールドがクリックされるたびに呼び出される関数を明示的に受け入れます。つまり、画像はブロック上に存在するボタンのように機能します。

クリック ハンドラは、JavaScript コンストラクタまたは setOnClickHandler 関数を使用して設定できます。

呼び出されたときにブロックを折りたたむクリック ハンドラの例を次に示します。

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

画像がクリックされ、ブロックが折りたたまれ、右クリックでコンテキスト メニューが表示され、[ブロックを展開] が選択され、ブロックが展開される様子を示すアニメーション GIF。