Scratch二次开发-自定义积木流程

第一步:定义积木类型

改动项目:blocks项目
文件:blocks_vertical下对应的文件
代码:
Blockly.Blocks[分类id + 自定义名称] = { // 必须按规则来,否者会出现积木复制,保存功能失效,详情见 自定义积木名称规则
    init: function() {
        this.jsonInit({
            message0: Blockly.Msg['积木名称'], // blocks项目(msg/scratch_mgs.js,msg/message.js下语言包配置)
            message1: "%1", // Statement
            message2: "%1", // Icon
            "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, // 前置连接  (null/Action 无类型/有类型)
            nextStatement: null, // 后续连接 (null/Action 无类型/有类型)
            colour: "", // 块的颜色 fill background
            colourSecondary: "", // 块的颜色
            colourTertiary: "", // 块的颜色 stroke border
            category: "", // 分类
            extensions: ["colours_xxx", "shape_statement"], // "colours_xxx" 包含了colour, colourSecondary, colourTertiary 配置(blocks项目blocks_vertical/vertical_extensions.js中 registerAll方法添加xxx属性)(注:写了extensions无需写colour, colourSecondary, colourTertiary)
        })
    }
}

第二步:积木注册

改动项目: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
  • 7
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值