Blockly开始使用

本文档面向希望创建自己的应用程序的开发人员,这些应用程序将Blockly集成为代码编辑器。

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

总览

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

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

获取代码

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

Blockly开始使用

获得代码后,将浏览器指向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(workspace); 
var xml_text = Blockly.Xml.domToText(xml); 

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

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

var xml = Blockly.Xml.textToDom(xml_text); 
Blockly.Xml.domToWorkspace(xml, workspace); 

云储存

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

- 本文来自网络,如有侵权,请联系本站处理。

2022-02   阅读(25)   评论(0)
 标签: program Blockly Graphical

涨知识
排序

排序是计算机内经常进行的一种操作,其目的是将一组“无序”的记录序列调整为“有序”的记录序列。

评论:
相关文章
Scratch 3.0连接EV3

本文介绍如何在Scratch中对EV3机器人进行开发。


三步完成scratch3的作品转换成HTML5文件,在线随时分享作品

本文教你一招超简单的方法,只需三步,就能将 sb3 格式作品转换成 H5,实现在移动端轻松玩!


Scratch积木指令详解

由于Scratch软件界面显示和国内等级考试大纲用词不同,部分名词出现了两种称呼。例如指令模块(积木)、程序区(代码区),其实表达的是一个意思。


大神用Scratch手搓RISC-V模拟器,成功运行Linux内核

用 Scratch 代码编写了成功运行 Linux 内核的模拟器。


MicroBlocks介绍

MicroBlocks 是受 Scratch 启发, 为「物理计算」而生的图形化编程语言。

搜索
最新课件
小鹏STEM教研服务

专属教研服务系统,助您构建STEM课程体系,打造一站式教学环境。