首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
srcatch二次开发
雷_伊
创建于2025-01-08
订阅专栏
公司要求对scratch进行二次开发,这里做一些对scratch二次开发的记录
等 1 人订阅
共20篇文章
创建于2025-01-08
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
增加扩展积木块
增加扩展积木块 (1) 找到scratch-vm/src/extensions目录,和扩展有关的函数都在这里,比如新建一个scratch3_camera文件夹新建index.js文件
使用ES6以上的语法报错
使用ES6以上的语法报错 用的是react16,用async和await,还有一些类,发现会报错,会解析不到这两个东西,然后查了一些资料要下插件改一下babel
webpack构建工具优化
webpack构建工具优化 (1) 使用rspack替换webpack,rspack比webpack快好几倍,但是项目太大,如果从webpack改成rspack特别是改动很多的时候就会有很多兼容性问题
积木禁用
积木禁用 有个需求就是在没有用到事件头积木的时候要禁用积木块,这里就记录一下逻辑,自己修改一下源码其实就知道了 (1) 积木禁用就调用scratch-blocks/core/block.js的setD
拷贝积木
拷贝积木 突然发现openblock和scratch不一样的一个功能就是openblock有个拷贝积木,虽然这个功能在项目中不是很重要,但是可以学习一下这个源码
设置默认积木头
设置默认积木 (1) 可以在procedures.js下设一个方法,给出一段文本,然后使用textToDom方法转换成dom元素,然后再将dom元素转换成block (2) 然后在gui使用方法
打开文件位置
打开文件位置,如果做了那个文件管理的话,就可以有一个可以打开文件所在位置的功能,直接用electron内置的模块就可以做到了 (1) 使用electron的shell模块的showItemInFold
修改角度积木
修改角度积木 (1) 修改角度积木下拉框只要用js原生就可以了,可以看一下乐高spike的样子,在scratch-blocks/core下找到field_angle.js,这个就是角度积木的js文件
保存文件
保存文件 (1) 保存文件其实就三个主要的方法,getSaveToComputerHandler、downloadProject、downloadBlob,我这边就有个需求是保存文件的时候需要检测文件
scratch二次开发-积木截图
积木截图 (1) 工作区其实就是一个svg,直接使用svg截图就可以了,使用save-svg-as-png这个包,要先检测一下工作区有没有积木,然后使用saveSvgAsPng方法,把积木元素和图片名
scratch二次开发-失去焦点问题
解决打开保存的文件,窗口会失去焦点问题 (1) 打开保存的文件,软件会重新加载,软件窗口会失去焦点,还有使用了alert、confirm等方法也会失去焦点,只需要让窗口重新聚焦就可以了
scratc二次开发-修改矩阵灯模块
修改矩阵灯模块 (1) 如果要把矩阵灯修改成88、79,就要在scratch-blocks中的core目录下找到field_matrix文件,先修改需要用到的常量: (2) 然后修改生成矩阵灯的地方,
scratch二次开发-对特殊积木的修改
对特殊积木的修改 (1) 比如像变量这种积木,是在scratch-blocks/core/data_category.js中修改的 (2) 对这种可以修改和删除的菜单,在scratch-gui/src
scratch二次开发-定义积木代表的方法
定义积木代表的方法 (1) 根据积木的type定义积木代表的方法,比如矩阵灯,然后获取积木上面的值,普通的值就用block.getFieldValue("镶嵌的输入框的类型")
scratch二次开发-打包成一个 exe 程序
打包成一个 exe 程序 要把项目打包成软件,一个exe程序,scratch有个项目是scratch-desktop,这个里面有用到electron把scratch打包成exe程序
scratch二次开发-编译C语言
使用gcc-arm-none-eabi交叉编译器,调用make命令调用硬件给的特定的makefile文件自动编译main.c主体c语言文件
scratch二次开发-语言国际化
1、添加语言解析 npm link可以链接两个项目,也可以改成npm install ../scratch-l10n,就像把这个项目当成依赖包一样,一个软链接,我一开始没用这个还不知道,后来一查才发现
scratch二次开发-添加一个类别
1、添加一个电机新类别 这个一个需求,要加新的积木,新的类别,看了很多别的产品,都有这个电机和组合电机,引脚什么的类别,这个也不难,总结出来了一些步骤,大概就这几步,C语言有一些参考,在github上
scratch二次开发-代码生成器
公司要求要生成C语言,这个挺坑的,因为C语言我记得是要编译,然后才能运行,我就算生成了代码,但是怎么编译是个大问题,因为目前不知道怎么做,所以还是先把代码生成器做出来,看了一些文章
scratch二次开发记录-添加blocks
scratch二次开发学习,新blocks的添加,总结了几个步骤,也看了网上的一下文章,尝试做一下。