欄位剖析

所有欄位都必須有值,做為欄位資料的可靠來源。可以是任何類型 (字串、數字、陣列、日期等)。 欄位可能會使用驗證器來限制值,或轉換為機器可讀取的格式 (例如正規化日期格式)。

文字

所有欄位都包含文字,也就是代表欄位值的簡單易讀字串。這不一定表示兩者相同。舉例來說,布林欄位上的文字可能是「開啟」或「關閉」,但值是 truefalse

這個文字會在區塊摺疊時顯示,以利存取,也可以選擇性地成為區塊內顯示內容的一部分。

可編輯與不可編輯的欄位

一般來說,可編輯的欄位允許使用者變更程式碼,而不可編輯的欄位則會向使用者顯示有關區塊的資訊。可編輯的欄位點選後可能會顯示進階編輯器。

可編輯的欄位包括:

不可編輯的欄位包括:

序列化

可序列化欄位的值會以儲存格式 (JSON 或 XML) 編碼。所有可編輯的欄位都是可序列化的,因為這些欄位的值是動態的。不可編輯的欄位值通常不是動態值,因此通常不會序列化。

序列化欄位包括:

未序列化的欄位包括:

請注意,標籤可序列化欄位無法編輯,但可以序列化。也就是說,只能透過程式輔助編輯,無法透過使用者可見的 UI 編輯。編輯完成後,系統會將值編碼至產生的 JSON/XML 中。

程式碼生成

除了連結及取消連結積木,欄位也是使用者控制 Blockly 生成程式碼的唯一方式。欄位提供的編輯器可讓使用者修改欄位儲存的值。然後,區塊的產生器可能會存取欄位值,以用於產生的程式碼。

如要進一步瞭解如何在產生器中使用欄位值,請參閱欄位程式碼產生

顯示在方塊上

欄位的區塊內顯示內容是一組 SVG 元素,代表欄位的值。這些元素會佔用方塊空間,且會隨著大小變更而強制方塊變更大小。視需求而定,欄位的區塊內顯示方式可能簡單或複雜。

以下列舉幾個不同的區塊內顯示方式,複雜度由低到高。

欄位類型 說明
標籤 只包含文字元素。
角度 包含背景矩形、文字元素和度數符號。
烏龜 包含背景矩形、文字元素,以及許多用於建構海龜圖形的 SVG 元素。

編輯器顯示畫面

使用者點按可編輯的欄位時,該欄位可能會顯示任意複雜的編輯器。

以下列舉幾個編輯器範例,複雜度由低到高。

欄位類型 說明
核取方塊 點選後沒有編輯器。區塊顯示畫面會更新。
輸入數字 文字編輯器會疊加在區塊內顯示內容上方。使用者可以輸入內容,編輯器可能會變更顏色,指出值不正確。
角度選擇器 角度挑選器提供文字編輯器 (可輸入數字) 和可拖曳的編輯器 (可透過視覺化方式選取角度)。

其他顯示模式

摺疊模式:使用者摺疊區塊。區塊會使用個別欄位傳回的文字,顯示值的文字表示法。

海龜欄位區塊收合

無障礙模式:使用者可能使用螢幕閱讀器或類似技術與 Blockly 互動。系統可能會向使用者朗讀欄位文字。