Scratch 物件 API
全域 Scratch 物件是擴充功能與 Bilup 對話的方式。它攜帶註冊函式、型別常量、轉換輔助工具,以及(對於非沙箱擴充功能)對 VM 和許可權 API 的直接存取。
沙箱擴充功能得到一個受限的 Scratch;VM、渲染器和積木工具僅限非沙箱。
註冊與結構
(function(Scratch) {
'use strict';
class MyExtension {
getInfo() {
return {
id: 'myextension',
name: 'My Extension',
blocks: [
{
opcode: 'myBlock',
blockType: Scratch.BlockType.REPORTER,
text: 'convert [VALUE] to number',
arguments: { VALUE: { type: Scratch.ArgumentType.STRING, defaultValue: '42' } }
}
]
};
}
myBlock(args) {
return Scratch.Cast.toNumber(args.VALUE);
}
}
Scratch.extensions.register(new MyExtension());
})(Scratch);
Scratch.extensions.register(instance):註冊您的擴充功能。恰好呼叫一次。Scratch.extensions.unsandboxed:以非沙箱方式執行時為true。在使用任何僅非沙箱的 API 之前檢查它。
型別常量
Scratch.BlockType
| 常量 | 值 | 含義 |
|---|---|---|
COMMAND | command | 堆疊積木,無返回值 |
REPORTER | reporter | 返回字串或數字的圓形積木 |
BOOLEAN | Boolean | 返回真/假的六邊形積木 |
HAT | hat | 有條件地啟動堆疊(請參閱事件和帽子) |
EVENT | event | 在事件上啟動堆疊;沒有函式 |
CONDITIONAL | conditional | 如果/否則 風格 C 積木(請參閱自訂 C 積木) |
LOOP | loop | 重複執行/重複執行無限次 風格 C 積木 |
BUTTON | button | 積木區按鈕,不是真正的積木 |
LABEL | label | 積木區中的文本標籤,不是真正的積木 |
XML | xml | 原始 Blockly XML |