Botones y etiquetas

Puedes colocar un botón o una etiqueta en cualquier lugar donde puedas colocar un bloque en la caja de herramientas.

Una caja de herramientas desplegable con un bloque de comparación, la etiqueta "Una etiqueta" en cursiva, la etiqueta "Otra etiqueta", un bloque `not`, un botón etiquetado como "Un botón" y un bloque verdadero-falso.

JSON

{
  "kind": "flyoutToolbox",
  "contents": [
    {
      "kind": "block",
      "type":"logic_operation"
    },
    {
      "kind": "label",
      "text": "A label",
      "web-class": "myLabelStyle"
    },
    {
      "kind": "label",
      "text": "Another label"
    },
    {
      "kind": "block",
      "type": "logic_negate"
    },
    {
      "kind": "button",
      "text": "A button",
      "callbackKey": "myFirstButtonPressed"
    },
    {
      "kind": "block",
      "type": "logic_boolean"
    }
  ]
}

XML

<xml id="toolbox" style="display: none">
  <block type="logic_operation"></block>
  <label text="A label" web-class="myLabelStyle"></label>
  <label text="Another label"></label>
  <block type="logic_negate"></block>
  <button text="A button" callbackKey="myFirstButtonPressed"></button>
  <block type="logic_boolean"></block>
</xml>
<style>
.myLabelStyle>.blocklyFlyoutLabelText {
  font-style: italic;
  fill: green;
}
</style>

Puedes especificar un nombre de clase CSS para aplicar a tu botón o etiqueta. En el ejemplo anterior, la primera etiqueta usa un estilo personalizado, mientras que la segunda usa el estilo predeterminado.

Los botones deben tener funciones de devolución de llamada, pero las etiquetas no. Para configurar la devolución de llamada para un clic de botón determinado, usa

yourWorkspace.registerButtonCallback(yourCallbackKey, yourFunction).

Tu función debe aceptar como argumento el botón en el que se hizo clic. El botón "Crear variable…" en la categoría de variables es un buen ejemplo de un botón con una devolución de llamada.