跳到主要內容

自訂擴充功能簡介

自訂擴充功能用 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 之一,這帶有我們還沒有準備好的額外責任。從沙箱開始。

稍後我們會介紹一個專門的開發伺服器,但從最原始的設定開始可以讓各個部分可見。

下一步

讓我們編寫您的第一個擴充功能