第一步:定义积木类型
改动项目:blocks项目
文件:blocks_vertical下对应的文件
代码:
Blockly.Blocks[分类id + 自定义名称] = {
init: function() {
this.jsonInit({
message0: Blockly.Msg['积木名称'],
message1: "%1",
message2: "%1",
"args0": [
{
"type": "input_value",
"name": "PICLISTS"
}
],
"args1": [
{
"type": "input_statement",
"name": "SUBSTACK"
}
],
"args2": [
{
"type": "field_image",
"src": Blockly.mainWorkspace.options.pathToMedia + "repeat.svg",
"width": 24,
"height": 24,
"alt": "*",
"flip_rtl": true
}
],
previousStatement: null,
nextStatement: null,
colour: "",
colourSecondary: "",
colourTertiary: "",
category: "",
extensions: ["colours_xxx", "shape_statement"],
})
}
}
第二步:积木注册
改动项目:gui项目
文件:src/lib/make-toolbox-xml.js(新增对应的模块)
第三步:事件注册
改动项目:vm项目
文件:src/blocks(注:新增的分类模块需要创建对应文件,如scratch3_xxx.js文件,没有新增就在对应的文件)
注意事项
1,自定义积木名称规则(car_samll_car为例)
car:分类id + 自定义名称(car + samll_car)
分类id:
改动项目:gui项目
文件:src/lib/make-toolbox-xml.js下,如:<category id="car"></category>
2,复制,保存功能不生效原因
一:自定义积木名称没有统一
二:默认参数没有加
改动项目:vm项目
文件:src/serialization/sb3.js下CORE_EXTENSIONS加上分类id