Blockly 開發人員工具是網頁式開發人員工具,可協助您建立自訂區塊,並將這些區塊納入應用程式。
定義區塊
Block Factory 工作區會從空白設定區塊開始。您可以將工具箱中各類別的區塊拖曳到區塊中,藉此新增輸入和欄位。您也可以修改設定區塊,為區塊設定工具提示文字、說明網址、顏色和連線檢查。
區塊工廠一次只能建立一種區塊。如果您想設計多個連結在一起的區塊,就必須分別設計這些區塊,並在工具箱定義中將這些區塊連結起來。此外,區塊可以包含變異子等進階功能,但這些進階功能無法在工廠中建立。建立區塊的基本表單後,您必須根據說明文件修改區塊定義。
當您在工作區中修改設定區塊時,區塊的預覽畫面會自動更新。您需要在應用程式中加入的程式碼也會自動更新。
輸出設定
Blockly 支援不同的定義區塊和載入 Blockly 本身的方法,以及多種內建程式碼產生器語言。定義區塊和區塊程式碼產生器的方式取決於這些因素,因此您可以在區塊工廠中設定這些因素,以便變更程式碼輸出內容。
Blockly 匯入格式
您可以透過 HTML 中的 <script>
標記載入 Blockly,如果您在應用程式中使用建構工具,也可以使用 import
陳述式。這個選擇會影響您參照 Blockly API 的特定部分的方式。如要進一步瞭解如何選擇,請參閱有關載入 Blockly 的說明文件。無論您使用哪種方法,請務必在 Block Factory 中選取相應選項,以便將正確的程式碼新增至應用程式。
區塊定義格式
Blockly 支援以 JSON 或 JavaScript 定義區塊。建議使用 JSON 格式,但如果您要新增變異器等進階功能,則可以使用 JavaScript 格式。
程式碼生成器語言
Blockly 提供多種程式碼產生器語言。請選擇應用程式所需的語言,以便顯示對應的區塊程式碼產生器輔助程式。如果您使用自訂語言產生器,則可在將程式碼複製到應用程式後,修改自訂 CodeGenerator
類別的名稱。
程式碼輸出內容
在 Block Factory 的後續章節中,我們會說明您需要將哪些程式碼複製到應用程式中,才能載入您建立的區塊。您複製程式碼的位置取決於應用程式的結構,但通常您需要在定義和區塊程式碼產生器前執行程式碼標頭,在嘗試在工具箱中使用區塊定義前執行區塊定義,以及在嘗試為工作區產生程式碼前執行區塊程式碼產生器。您可以使用複製按鈕,為每個部分複製整個程式碼區塊。
如果您仍不確定如何使用程式碼輸出內容,不妨參考範例應用程式,其中包含自訂區塊和區塊程式碼產生器的範例。
程式碼標頭
「Code Headers」部分會顯示載入核心 Blockly 程式庫和您選擇的語言產生器所需的程式碼。這裡也可能有其他設定;例如,您在區塊中加入的部分欄位可能來自 Blockly 外掛程式。這些外掛程式會有自己的匯入陳述式,以及您必須執行以初始化欄位的其他程式碼。您應在下列任何程式碼區段之前加入這段程式碼。
區塊定義
區塊定義是您向 Blockly 說明區塊形狀的方式,例如區塊包含哪些欄位和輸入內容、顏色等。執行這段程式碼後,Blockly 就會知道如何根據 type
建立區塊。
如果您使用的是範例應用程式,可以將這段程式碼加入 blocks/
目錄底下的檔案中。如果您有自己的應用程式結構,請務必先加入這段程式碼,再嘗試以名稱參照區塊,例如在工具箱定義中。無論如何,請務必在包含此程式碼的檔案中加入程式碼標頭。
產生器輔助程式
區塊程式碼產生器是用來描述應為區塊產生的程式碼。Block Factory 建立的產生器 Stub 會提供基本程式碼,用於取得區塊中輸入內容和欄位的值。您可以將這些值合併至最終產生的程式碼!
如果您使用的是範例應用程式,可以將這段程式碼加入 generators/
目錄底下的檔案中。如果您有自己的應用程式結構,請務必先加入這段程式碼,再嘗試為包含自訂區塊的工作區產生程式碼。無論如何,請務必在納入此程式碼的檔案中加入程式碼標頭。
影片逐步操作說明
這部影片將詳細說明定義區塊的步驟。雖然 UI 已過時,但它所強調的區塊功能仍算準確。
方塊程式庫
每次變更區塊時,系統都會自動將區塊儲存在瀏覽器的本機儲存空間中。您可以按一下頂端工具列中的對應按鈕,建立新的區塊或從本機儲存空間載入現有區塊。
從舊版 Block Factory 匯入
如果您已使用舊版 Block Factory,且想要將現有的區塊定義遷移至新工具,請按照下列步驟操作:
在舊版 Block Factory 中,按一下工具列中的
Export Block Library
按鈕。系統會下載包含所有區塊定義的檔案。在新版的 Block Factory 中,按一下工具列中的
Load block
按鈕。在選單中選取「Import from Block Factory」(從 Block Factory 匯入) 選項。
上傳您在步驟 1 下載的檔案。
您的區塊定義應會自動轉換為新格式,並會顯示在
Load block
選單中。如果區塊與現有區塊發生衝突,系統可能會重新命名區塊。如果解析任何區塊時發生錯誤,我們就無法載入這些區塊。您可以針對 blockly-samples 回報錯誤,並附上無法剖析的檔案,協助我們解決問題。