欢迎光临散文网 会员登陆 & 注册

如何用Javascript自制Scratch拓展?

2023-02-04 12:25 作者:MA_master  | 我要投稿

请注意:本文已默认你了解并掌握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

如果导入时没有成显示拓展,请打开开发者模式进行排错

要说的就这么多,下期再见~


如何用Javascript自制Scratch拓展?的评论 (共 条)

分享到微博请遵守国家法律