自訂擴充功能簡介
自訂擴充功能用 JavaScript 為 Bilup 新增新積木。本教程從最簡單的擴充功能逐步建置到功能完整的擴充功能,一次一個概念。請按順序閱讀各頁,並在繼續之前完成練習;每一頁都假設您理解了上一頁。
如果您只想使用現有積木,您不需要這些。開啟編輯器,點選"新增擴充功能"按鈕(積木區左下角兩個積木旁邊的加號),然後選擇一個內建擴充功能。本教程面向想編寫自己的擴充功能的人。
"擴充功能"可以指什麼
這個詞用於幾種不同的事情:
| 可以存取 Bilup 內部 | 可以透過 URL 載入 | |
|---|---|---|
| 內建擴充功能(畫筆、音樂等) | 是 | 否 |
| 沙箱自訂擴充功能 | 否 | 是 |
| 非沙箱自訂擴充功能 | 是 | 是 |
這些頁面只涵蓋自訂擴充功能(沙箱和非沙箱型別)。內建擴充功能共享相同的積木描述格式,但捆綁在編輯器建置本身中,因此開發它們是涉及 scratch-vm 原始碼的不同過程。沙箱和非沙箱之間的區別稍後介紹。
相容性
自訂擴充功能是 Bilup 和 TurboWarp 的功能。使用它們的專案不能上傳到 Scratch 網站。它們在 Bilup 編輯器中工作,並且可以透過Bilup 打包器捆綁到獨立應用或網頁中,打包器總是以非沙箱方式執行擴充功能。
先決條件
編寫擴充功能需要了解 JavaScript。如果您還不知道 "1"(字串)和 1(數字)之間的區別,請先學習 JavaScript;否則擴充功能開發會非常困難。本教程不教授這門語言。
您還需要瀏覽器的開發者工具。它們通常在右鍵單擊下,然後是"檢查",或在桌面應用中是 Ctrl+Shift+I(macOS 上是 Option+Command+I)。不開啟控制台編寫 JavaScript 是痛苦的,而且您遇到的大多數問題只會在那裡可見。
設定開發環境
有幾種方法可以載入您正在開發的擴充功能。
從檔案或貼上的程式碼載入(最簡單)
在編輯器中,"新增擴充功能",滾動到底部,選擇"自訂擴充功能"。對話方塊讓您直接貼上 JavaScript 或選擇本地檔案。這在任何只有文本編輯器的機器上都能工作,但您每次更改它都必須重新貼上或重新選擇檔案。
本地 HTTP 伺服器(推薦)
本地 Web 伺服器讓 Bilup 透過 URL 獲取您的擴充功能,因此更改後只需重新載入頁面。如果您安裝了 Python,您已經有了一個伺服器:
cd path/to/your/extensions
python3 -m http.server 8080
那會在 http://localhost:8080/ 提供當前資料夾。在該資料夾中放一個名為 hello-world.js 的檔案,並在繼續之前確認您可以在瀏覽器中開啟 http://localhost:8080/hello-world.js。
現在請使用不是 8000 的埠。埠 8000 很特殊:它是 Bilup 信任用於執行非沙箱的 URL 之一,這帶有我們還沒有準備好的額外責任。從沙箱開始。
稍後 我們會介紹一個專門的開發伺服器,但從最原始的設定開始可以讓各個部分可見。
下一步
讓我們編寫您的第一個擴充功能。