區塊狀態

區塊執行個體有多項屬性,可設定區塊對使用者的行為方式。雖然可以在方塊定義中設定這些項目,但更常見的用途是限制工作區中的方塊,以反映網域的特定屬性 (例如,只有一個「開始」事件),或引導使用者專注於特定目標 (例如教學課程)。

可刪除狀態

block.setDeletable(false);

如果設為 false,使用者就無法刪除封鎖。在可編輯的工作區中,方塊預設為可刪除。

任何區塊 (包括無法刪除的區塊) 都可以透過程式輔助方式刪除:

block.dispose();

可編輯狀態

block.setEditable(false);

如果設為 false,使用者就無法變更區塊的欄位 (例如下拉式選單和文字輸入)。在可編輯的工作區中,方塊預設為可編輯。

可移動狀態

block.setMovable(false);

如果設為 false,使用者就無法直接移動方塊。如果無法移動的積木是另一個積木的子項,則無法與該積木中斷連結,但如果移動父項,子項也會跟著移動。在可編輯的工作區中,方塊預設為可移動。

程式碼區塊一經放置在工作區,即可透過程式輔助方式移動,即使是無法移動的區塊也一樣。

block.moveBy(dx, dy)

工作區中區塊的起始位置預設為 (0, 0)

封鎖資料

block.data = '16dcb3a4-bd39-11e4-8dfc-aa07a5b093db';

資料是附加至區塊的任意選填字串。區塊序列化時,資料字串也會一併序列化。包括複製或貼上區塊時。

這通常用於將區塊與外部資源建立關聯。

序列化為 JSON 時,資料會儲存為區塊中的頂層屬性:

{
  "type": "my_block",
  "data": "16dcb3a4-bd39-11e4-8dfc-aa07a5b093db",
  // etc..
}

序列化為 XML 時 (舊的封存序列化系統),資料字串會儲存在區塊內的 <data></data> 標記中:

<block type="my_block">
  <data>16dcb3a4-bd39-11e4-8dfc-aa07a5b093db</data>
  <!-- etc... -->
</block>