如何用Javascript自制Scratch拓展?
请注意:本文已默认你了解并掌握Javascript基础知识
上次我用Javascript制作了一个Scratch拓展(视频在这里)
就有很多人会问:啊这个怎么做啊?是不是很复杂啊??
额,其实一点也不(我自己都不咋会Javascript)难
教程开始!
首先你需要一个模板:
这就是一个模板,需要往里面加入些东西
首先,往blocks里写入写块,编辑器才能识别
这是一个示例的块,内容是'Hello,world!'
但这还没完,现在我们只定义了一个空的“壳”,里面没有任何内容,编辑器也不知道应该做什么,于是报错。
所以我们还得在 getInfo 的下面写上函数,让编辑器(编译器)识别他
于是一个完整的拓展就做好了
示例链接:https://turbowarp.org/editor?extension=https://livefile.xesimg.com/programme/python_assets/eb48092d8edfba77ade1fc13db767ca0.js
获取信息方法
getInfo
是一个函数,应该包含以下内容:
id
是一个字符串,表示此扩展使用的唯一 ID。它应该只包含字符 a-z , 0-9以及下划线。同一扩展应始终使用相同的 ID,因为更改它会破坏现有项目。name
是一个字符串,告诉 Scratch 要在侧边栏中显示什么名称blocks
是一个对象列表,用于定义扩展包含哪些块。type
定义要制作的输入形状。请注意,无论此处设置何种类型,都不能保证实际传递给块的值被强制转换为正确的类型。例如,您应该手动将参数转换为数字,因为它们通常会作为字符串传递。Scratch.BlockType.REPORTER
制作数字或字符串返回块Scratch.BlockType.BOOLEAN
制作布尔返回块Scratch.BlockType.COMMAND
制作控制块defaultValue
是从库创建块时的初始值(默认值)arguments
是一个对象,用于定义块接受的参数。每个参数都有:Scratch.ArgumentType.STRING
对于字符串输入Scratch.ArgumentType.NUMBER
用于数字输入Scratch.ArgumentType.BOOLEAN
对于布尔输入(无默认值)Scratch.ArgumentType.ANGLE
对于角度Scratch.ArgumentType.COLOR
对于颜色(#123abc格式)Scratch.ArgumentType.MATRIX
对于 5x5 矩阵(以 11101010101... 字符串格式传递)Scratch.ArgumentType.NOTE
对于音符(音乐模块)
(转自docs.turbowarp.org/development/custom-extensions)
下面有一个传参的样例:
示例链接:https://turbowarp.org/editor?extension=https://livefile.xesimg.com/programme/python_assets/980a0f1406c6d2bdef35471ed06f0cd3.js
如果导入时没有成显示拓展,请打开开发者模式进行排错
要说的就这么多,下期再见~