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