首页/新闻资讯/正文详情

完整上手 Blockly 可视化编程编辑器:最小示例到自定义积木生成代码

发布时间:2026/11/4 2:17:05 来源:云帆数科 栏目:资讯中心
完整上手 Blockly 可视化编程编辑器:最小示例到自定义积木生成代码
完整上手 Blockly 可视化编程编辑器最小示例到自定义积木生成代码【免费下载链接】blocklyThe web-based visual programming editor.项目地址: https://gitcode.com/gh_mirrors/bloc/blocklyBlockly 是谷歌开源的 Web 可视化编程编辑器把变量、逻辑、循环等编程概念封装成可拼接的图形积木拖拽完成后一键编译成 JavaScript、Python、PHP、Lua、Dart 等真实代码。读完本文你能用最少代码在本地跑通一个最小示例并注册一块自定义积木、让它产出可执行代码。阅读路线第一节理解工作区、积木、生成器三者的分工第二节三条命令跑通最小页面第三节定义自定义积木并生成 JavaScriptBlockly 工作区、积木与生成器的分工本节建立全局认知知道代码写在哪个目录、各部件各管什么。Blockly 解决的问题是语法劝退新手先和分号、括号搏斗而不是先表达逻辑。它把程序拆成一块块带插槽的积木拼对就能运行天然没有语法错误。核心部件只有三件workspace工作区承载所有积木负责摆放、选中、缩放与事件入口类在 core/workspace.tsblock积木描述单块积木的结构、字段与连接规则core/block.tsgenerator生成器把积木逻辑翻译成目标语言文本实现在 generators/默认积木库逻辑、循环、数学、文本、变量位于 blocks/每种语言各有一个生成器目录如 generators/javascript/。Blockly 最小安装命令与运行片段本节把编辑器跑起来装依赖用Blockly.inject得到一个可用的工作区。环境现代浏览器 Node.js 16 及以上安装npm install blockly运行以下最小片段import * as Blockly from blockly; import blockly/blocks; const workspace Blockly.inject(blocklyDiv, { grid: { spacing: 20, colour: #ccc, snap: true }, trashcan: true, toolbox: { kind: flyoutToolbox, contents: [ { kind: block, type: controls_if }, { kind: block, type: math_number }, ], }, });div idblocklyDiv stylewidth: 600px; height: 400px/div注意两点Blockly.inject必须绑定一个真实存在的 DOM 容器上面示例省略了 toolbox 时工作区只是一个空白画布这是正常现象。自定义积木 JSON 配置与 JavaScript 生成器本节完成第一次改造注册一块hello积木并让它产出 JavaScript 代码。自定义积木 定义 生成器两处都要写Blockly.defineBlocksWithJsonArray([ { type: hello, message0: 向 %1 打招呼, args0: [{ type: field_input, name: WHO, text: 世界 }], previousStatement: null, nextStatement: null, colour: 160, }, ]); Blockly.JavaScript[hello] (block) { const who Blockly.JavaScript.valueToCode( block, WHO, Blockly.JavaScript.ORDER_NONE ); return console.log(你好${who});\n; }; console.log(Blockly.JavaScript.workspaceToCode(workspace));在工具箱加入{ kind: block, type: hello }后拖出该积木workspaceToCode会把它编译成一行console.log。若输出里没有这段代码多半是生成器忘了注册。进阶能力按路径定位主题、事件、工具箱本节只给地图每个能力在哪看、看什么文件。主题定制Theme.defineTheme修改积木颜色、字体与间距参考 core/theme/zelos.ts事件监听workspace.addChangeListener捕获拖动、删除等变化适合做自动保存源码在 core/events/工具箱分类改用categoryToolboxJSON 即可得到侧边栏分类解析逻辑在 core/utils/toolbox.ts云存储集成appengine/ 提供完整的存取后端 demo高频踩坑速查积木不显示、无代码输出每个问题按现象 → 原因 → 解法三行处理现象积木在工具箱里不出现 原因积木未定义或工具箱 JSON 中没有引用它的type解法检查defineBlocksWithJsonArray与 toolboxcontents里的type是否一致现象workspaceToCode输出为 undefined 或空 原因该积木没有对应语言的生成器 解法为每种目标语言补上生成函数如Blockly.JavaScript[hello]现象容器已存在但页面只有空白画布 原因未配置 toolbox工作区默认无积木来源 解法像第二节那样在 options 中加入toolbox现象拼错积木名仍无任何报错 原因Blockly 对未知 type 静默忽略 解法在控制台打印Blockly.Blocks.hello确认对象已注册参考路径blocks/、generators/、tests/generators/、demos/、tests/playground.html。建议下一步打开 playground 示例把任意一块积木改成你自己的逻辑再用生成器看它输出什么。【免费下载链接】blocklyThe web-based visual programming editor.项目地址: https://gitcode.com/gh_mirrors/bloc/blockly创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关推荐

DriverStoreExplorer 使用指南:清理 Windows 驱动存储,释放 C 盘空间
DriverStoreExplorer 使用指南:清理 Windows 驱动存储,释放 C 盘空间

DriverStoreExplorer 使用指南:清理 Windows 驱动存储,释放 C 盘空间 【免费下载链接】DriverStoreExplorer Driver Store Explorer 项目地址: https://gitcode.com/gh_mirrors/dr/DriverStoreExplorer Windows 每装一次驱动都会在系统里留一份旧… · 2026/11/4 2:17:05

免费 3D 建模软件 SolidCraft 快速上手:不编译,一天跑通网页版与 AI 建模
免费 3D 建模软件 SolidCraft 快速上手:不编译,一天跑通网页版与 AI 建模

免费 3D 建模软件 SolidCraft 快速上手:不编译,一天跑通网页版与 AI 建模 【免费下载链接】solidcraft SolidCraft: an open-source parametric 3D CAD application built in pure Rust. Desktop, web, and automation through MCP. 项目地址: https:/… · 2026/11/4 2:17:05

reze-mipo VMD导出实战:30fps逐帧采样与关键帧精简,让MMD动画文件随处一致
reze-mipo VMD导出实战:30fps逐帧采样与关键帧精简,让MMD动画文件随处一致

【免费下载链接】reze-mipo Real-time MMD motion capture on Web 项目地址: https://gitcode.com/gh_mirrors/mi/reze-mipo 点击查看 免费下载 reze-mipo 是一款在浏览器里实时捕捉身体、双手和面部动作,并直接导出 MMD 动画文件的实时动作捕捉工具。本… · 2026/11/4 2:17:05

ROS 2与TurtleBot3实现SLAM建图与Nav2导航实战
ROS 2与TurtleBot3实现SLAM建图与Nav2导航实战

1. 项目概述在机器人开发领域,SLAM(同步定位与地图构建)和自主导航是两大核心技术。本文将详细介绍如何在Ubuntu 24.04系统中,使用ROS 2 Kilted版本配合TurtleBot3机器人实现完整的SLAM建图与Nav2导航功能。这个方案非常适合想要快… · 2026/11/4 18:14:32

毫米波雷达天线罩设计:从材料选型到仿真实测的避坑指南
毫米波雷达天线罩设计:从材料选型到仿真实测的避坑指南

简介:这份资料围绕毫米波雷达天线与天线罩设计展开,面向从事汽车雷达、工业传感及自动驾驶相关硬件开发的工程师与设计人员,帮助解决天线罩材料选型、厚度与间距确定、阻抗匹配等实际设计难题。压缩包内为1份PDF文档,约2.63MB&… · 2026/11/4 18:14:32

风电-光热-生物质混合电站鲁棒优化调度模型解析
风电-光热-生物质混合电站鲁棒优化调度模型解析

1. 混合电站优化调度背景与挑战在碳中和目标下,风电-光热-生物质混合电站正成为电力系统的新宠。这种组合可不是简单拼凑,而是有讲究的——风电和光热出力互补(风大时光照弱,反之亦然),生物质发电则提供稳定… · 2026/11/4 18:14:32

一次性生物反应器袋子市场:三维袋59%份额与10.4% CAGR背后的结构信号
一次性生物反应器袋子市场:三维袋59%份额与10.4% CAGR背后的结构信号

简介:这份行业研究资料聚焦生物反应器一次性袋子市场,面向生物制药从业者、投资分析人员及产业链相关研究者,帮助读者快速把握该细分赛道的规模、格局与趋势。内容基于QYResearch统计数据,覆盖行业定义与背景、全球及中国市场规模… · 2026/11/4 18:14:32

Android开发中SVG矢量图的高效应用与优化
Android开发中SVG矢量图的高效应用与优化

1. SVG在Android开发中的核心价值 矢量图形(SVG)在移动端开发领域早已不是新鲜事物,但直到Android 5.0(API 21)推出VectorDrawable支持后,开发者才能真正在项目中高效使用这种图形格式。与传统位图资源相比… · 2026/11/4 18:14:32

HTML5与CSS3基础入门:构建现代网页的核心技术
HTML5与CSS3基础入门:构建现代网页的核心技术

1. HTML5与CSS3基础入门指南 作为一名从业多年的前端开发者,我深知HTML5和CSS3是构建现代网页的基石。无论你是刚入门的新手还是想巩固基础的开发者,掌握这两项技术都至关重要。让我们从最基础的部分开始,逐步深入理解这些核心概念。 提示&a… · 2026/11/4 18:13:31

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 3:16:49

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 6:59:29

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 7:02:38

AI辅助技术栈评估:提升研发决策效率60%
AI辅助技术栈评估:提升研发决策效率60%

1. 项目背景与核心价值技术决策一直是研发团队面临的重大挑战。随着技术生态的快速演进,技术栈的选择、维护和迭代变得愈发复杂。我们团队在过去两年里,先后经历了三次重大技术栈迁移,每次都需要投入大量人力进行技术评估和风险分析。直到去年… · 2026/11/4 0:00:17

从生成Token到直接决策:Jev如何重塑AI Agent工程实践
从生成Token到直接决策:Jev如何重塑AI Agent工程实践

1. 从"生成文字"到"拍板决策":Jev 到底在解决什么问题大多数人第一次接触大模型,脑子里建立的模型是"输入问题、输出文字"。你问它今天天气怎么样,它给你一段描述;你让它写个周报,它给你… · 2026/11/4 0:00:17

32G统一内存跑大模型:内存账、TPS实测与端云分流
32G统一内存跑大模型:内存账、TPS实测与端云分流

想在一台 32G 统一内存的小主机上把大模型跑成"日常可用",这件事我前后折腾了小半年。标题里说的这台 Mac mini M6,是我们这次讨论的目标平台,具体到手规格以实物为准;但下面这套推算方法和实测思路,对任何统… · 2026/11/4 0:00:17

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 3:16:49

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 6:59:29

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 7:02:38

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码