创建您的第一个扩展
本教程从头开始创建一个简单的编译扩展,展示您将在更复杂的扩展中使用的关键概念和模式。
项目设置
为您的扩展创建一个新的 JavaScript 文件。我们将构建一个"数学工具"扩展,提供优化的数学运算。
扩展头
从基本扩展结构开始:
/**!
* Math Utils Extension
* @author Your Name
* @version 1.0
* @copyright MIT License
*/
(function(Scratch) {
'use strict';
// 验证非沙箱环境
if (!Scratch.extensions.unsandboxed) {
throw new Error("Math Utils extension needs to be run unsandboxed.");
}
访问编译器 API
获取必要的 Bilup 组件引用:
const { vm, BlockType, ArgumentType } = Scratch;
const { runtime } = vm;
// 访问编译器内部
const compilerAPI = vm.exports.i_will_not_ask_for_help_when_these_break();
const { JSGenerator, IRGenerator, ScriptTreeGenerator } = compilerAPI;
// 导入类型系统
const {
TYPE_NUMBER,
TYPE_STRING,
TYPE_BOOLEAN,
TypedInput,
ConstantInput
} = JSGenerator.unstable_exports;