blockly开始使用

Blockly是一款客户端的可视化编程工具,适用于Web应用程序集成。它支持多种编程语言如JavaScript、Python等,用户通过拖拽块状代码生成语法正确的程序。Blockly无需服务器支持,开源且无第三方依赖。本文档指导开发者如何安装、配置Blockly,包括代码生成、块的导入导出及云存储功能。
部署运行你感兴趣的模型镜像

开始使用

本文档面向希望创建自己的应用程序的开发人员,这些应用程序将Blockly集成为代码编辑器。假定人们通常熟悉Blockly的用法,并且对HTML和JavaScript有基本的了解。

总览

Blockly旨在轻松安装到您的Web应用程序中。用户拖动块,Blockly生成代码,您的应用程序对该代码执行某些操作。从您的应用程序的角度来看,Blockly只是一个文本区域,用户可以在其中键入语法上完美的JavaScript,Python,PHP,Lua,Dart或其他语言。

Blockly是100%的客户端,不需要服务器的任何支持(除非有人想使用云存储功能)。没有第三方依赖关系(除非有人想重新编译内核)。一切都是开源的。

获取代码

首先,从GitHub下载源代码。如果您知道如何使用Git或Subversion,我们强烈建议您从存储库中进行同步,以使您的代码保持最新。

获得代码后,将浏览器指向demos/fixed/index.html并确认可以拖动块。

块状注射

在您验证Blockly的安装正常工作后,使用固定大小将Blockly注入到网页中div

→有关注入固定大小的块的更多信息...

更高级的网页可能希望允许Blockly调整大小以填充页面。

→有关注入可调整大小的块的更多信息...

组态

Blockly.inject上面示例中使用的行将名称-值对字典作为第二个参数。这些用于配置。支持以下选项:

名称类型描述
collapse:布尔值允许折叠或扩展块。true如果工具箱具有类别,false则默认为,否则为。
comments:布尔值允许块具有注释。true如果工具箱具有类别,false则默认为,否则为。
css:布尔值如果为false,则不要注入CSS(假设CSS成为文档的责任)。默认为true
disable:布尔值允许禁用块。true如果工具箱具有类别,false则默认为,否则为。
grid:宾语配置一个块可能会捕捉到的网格。请参阅网格 ...
horizontalLayout布尔值如果true工具箱是水平的,如果false工具箱是垂直的。默认为false
maxBlocks:可以创建的最大块数。对学生练习有用。默认为Infinity
maxInstances:宾语从块类型映射到可以创建的那种类型的最大块数。未声明的类型默认为Infinity
media:从页面(或框架)到Blockly媒体目录的路径。默认为。"https://blockly-demo.appspot.com/static/media/"
move:宾语配置用户如何在工作空间中移动的行为。请参阅移动 ...
oneBasedIndex:布尔值如果true列表和字符串操作应从索引1,如果false索引从0。默认为true
readOnly:布尔值如果为true,则禁止用户进行编辑。禁止工具箱和垃圾桶。默认为false
rtl:布尔值如果为true,则镜像编辑器(对于阿拉伯语或希伯来语区域设置)。请参阅RTL演示。默认为false
scrollbars:布尔值设置工作区是否可滚动。true如果工具箱具有类别,false则默认为,否则为。
sounds:布尔值如果为false,则不播放声音(例如,单击并删除)。默认为true
theme:块状主题如果未提供主题,则默认为经典主题。查看主题
toolbox:XML节点或字符串用户可用的类别和块的树形结构。请参阅下面的详细信息。
toolboxPosition:如果"start"工具箱位于顶部(水平)或左侧(垂直和LTR)或右侧(垂直和RTL)。如果"end"工具箱在另一侧。默认为"start"
trashcan:布尔值显示或隐藏垃圾桶。true如果工具箱具有类别,false则默认为,否则为。
maxTrashcanContents:垃圾箱弹出框中显示的已删除项目的最大数量。“ 0”禁用该功能。默认为“ 32”。
zoom:宾语配置缩放行为。参见缩放 ...

最重要的选择是toolbox。这是一棵XML树,用于指定工具箱(侧面菜单)中可用的块,如何分组以及是否存在类别。

→有关定义工具箱的更多信息...

除了Blockly随附的默认块之外,还需要构建自定义块来调用Web应用程序的API。一个例子是这个迷宫游戏,它具有自定义的移动块。

→有关创建自定义块的更多信息...

代码生成器

Blockly不是一种编程语言,无法“运行” Blockly程序。相反,Blockly可以将用户的程序转换为JavaScript,Python,PHP,Dart或其他某种语言。

→有关代码生成器的更多信息...

导入和导出块

如果您的应用程序需要保存和存储用户的块并在以后访问时恢复它们,请使用此调用导出到XML:

var xml = Blockly Xml 。workspaceToDom (工作空间); var xml_text = 阻止Xml 。domToText (xml ); 
 
 

这将产生一个最小(但难看)的字符串,其中包含用户块的XML。如果希望获得更易读(但更大)的字符串,请 Blockly.Xml.domToPrettyText改用。

从XML字符串还原到块很简单:

var xml = Blockly Xml 。textToDom (xml_text ); 块状Xml 。domToWorkspace (xml ,工作区); 

 

云储存

Blockly带有可选的云存储功能。它使用户可以保存,加载,共享和发布他们的程序。如果您的项目托管在App Engine上,则可以利用此服务。

→有关云存储的更多信息...

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

Blockly 是由 Google 开发的开源可视化编程框架,其核心理念是通过类似积木的界面让用户直观地构建逻辑流程。与 Scratch 类似,Blockly 提供图形化的编程块,但它的主要用途是作为“图形编程引擎”嵌入到其他应用程序中,支持导出多种编程语言的代码,被广泛应用于教育和开发工具中[^1]。 对于初学者而言,学习 Blockly 的最佳方式是从基础编程概念入手,例如变量、循环、条件判断等。这些概念可以通过 Blockly 的图形化界面直观地理解,并逐步过渡到实际应用中[^4]。Blockly 的学习路径通常包括以下几个方面: ### 理解 Blockly 的基本结构 Blockly 的界面由多个编程块组成,每个块代表一个特定的编程结构,例如控制流、变量操作、函数调用等。编程块可以拖拽并连接在一起,形成完整的逻辑流程。这种设计使得用户无需记忆语法,而是专注于逻辑构建。 Blockly 提供了多种语言的本地化支持,包括中文、英文等,便于不同地区的学习者使用。此外,Blockly 的官方文档和社区资源提供了丰富的学习材料,帮助用户逐步掌握其使用方法。 ### 使用 Blockly 开发简单项目 实践是掌握 Blockly 的关键。可以通过开发简单的项目来熟悉其功能,例如: - **控制传感器**:在教育机器人领域,Blockly 被广泛用于控制硬件设备,例如 MakerX 编程小车。学生可以通过 Blockly 编写程序来控制小车的运动、响应传感器输入等,从而掌握编程逻辑[^2]。 - **创建动画或小游戏**:Blockly 可以用于创建交互式内容,例如动画、小游戏等,这有助于理解事件驱动编程和用户交互逻辑。 - **导出代码**:Blockly 支持将图形化代码转换为 JavaScript、Python、PHP 等语言的文本代码,这为从图形化编程向传统编程语言的过渡提供了便利。 ### Blockly 的集成与扩展 Blockly 不仅是一个独立的编程工具,它还可以作为组件嵌入到其他应用中。开发者可以通过自定义积木块、扩展功能模块来构建专属的编程环境。例如,iVX 作为一个可视化编程平台,就利用了类似 Blockly 的逻辑来构建可视化流程,并支持生成全栈代码[^3]。 以下是一个使用 Blockly 的简单示例代码(JavaScript): ```javascript // 初始化 Blockly 工作区 const workspace = Blockly.inject('blocklyDiv', { toolbox: document.getElementById('toolbox') }); // 定义一个简单的自定义积木块 Blockly.Blocks['example_block'] = { init: function() { this.appendDummyInput() .appendField("打印消息:") .appendField(new Blockly.FieldTextInput("Hello World"), "MESSAGE"); this.setPreviousStatement(true); this.setNextStatement(true); this.setColour(160); this.setTooltip(""); this.setHelpUrl(""); } }; // 将积木块转换为 JavaScript 代码 Blockly.JavaScript['example_block'] = function(block) { const message = block.getFieldValue('MESSAGE'); return `console.log('${message}');\n`; }; ``` 上述代码展示了如何在网页中嵌入 Blockly,并添加一个自定义积木块,该积木块在执行时会输出一条日志信息。 ### 学习资源推荐 - **官方文档**:Blockly 的官方文档提供了详细的 API 说明和示例,适合开发者深入学习。 - **在线教程**:许多在线平台提供了 Blockly 的入门教程,例如 Google 的 Blockly 开发者指南和社区教程。 - **教育项目**:结合硬件设备(如 Arduino、Raspberry Pi)或教育机器人(如 MakerX)进行实践,可以更直观地理解 Blockly 的应用。 ###
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值