构建一个Blockly应用一般包括以下步骤:集成Blockly编辑器 - 最简单的Blockly编辑器包含了一个“工具箱”来存储的块(block)类型,和一个用于安装块的“工作区”。详细集成方法请参考使用 Blockly,或官方文档Web和Android

创建应用块 - 集成Blockly后,就需要创建一些用户代码块,并将其添加到Blockly“工具箱”。创建自定义块参考官方文档Create Custom Blocks Overview

构建应用的其余部分 - Blockly只是解决一代码生成的部分,而应用的核心是如何使用代码,这部分还需要开发者自行实现

开始:

1.下载源码

2. 注入 Blockly

安装 Blockly 并验证其可用后,就可以引入 Blockly。如,将 Blockly 在Web页面的一个固定尺寸的div:

3. 配置

上面的示例的Blockly.inject行中,第二个参数是一个键/值对字典。其用于配置Blockly,可用的配置项有:collapse - boolean。允许“块”折叠或展开。如果工具箱有类别,默认为true;其它情况为false

comments - boolean。允许“块”有注释。如果工具箱有类别,默认为true;其它情况为false

css - boolean。如果设置false,则不注入 CSS;默认为true

disable - boolean。使“块”不可用。如果工具箱有类别,默认为true;其它情况为false

grid - object。配置一个网格,使块可以捕获到。见Grid

horizontalLayout - boolean。设置true则工具箱使用水平布局;false则使用垂直布局。默认为false

maxBlocks - number。最大可创建的“块”数量。默认为Infinity

media - string。Blockly 媒体文件目录路径。默认为"https://blockly-demo.appspot.com/static/media/"

oneBasedIndex - boolean。设置为true则字符串操作索引会从1开始;false则从0开始。默认为true

readOnly - boolean。设置为true,则禁止用户编辑。影响“工具箱”和“垃圾桶”。默认为false

rtl - boolean。设置为true,则镜像化编辑器。默认为false。见RTL Demo

scrollbars - boolean。设置工作区是否可滚动。如果工具箱有类别,默认为true;其它情况为false

sounds - boolean。设置为false,则点击或删除时不会播放声音。默认为true

toolbox - XML节点或string。用户可用“分类”和“块”的结构树。

toolboxPosition - string。设置为start,则工具箱在上部(水平显示时)或左则(垂直显示时)或右则(垂直LTR显示时)。设置为end,则在相对僧。默认为start

trashcan - boolean。显示或隐藏“垃圾桶”。如果工具箱有类别,默认为true;其它情况为false

zoom - object。工作区缩放配置。见Zoom

在以上配置中,最重要的选项是toolbox。它是一个XML节点树,用于指定工具箱中有哪些可用的“块”、块如何分布、及是否有类别。

另外,除 Blockly 的默认“块”外,定义块需要通过调用你Web应用的API来构建。

4. 代码生成

Blockly 是编程语言,也就不能“运行” Blockly 程序。但是你可以将 Blockly 转为用户所需要的JavaScript、Python、PHP、Dart或其它语言

5. “块”的导入、导出

如果你需要将“块”导出,以在其它应用中使用或在以后还原。可以调用以下XML:

var xml = Blockly.Xml.workspaceToDom(workspace);

var xml_text = Blockly.Xml.domToText(xml);

调用后,会生成一个最小化的包含用户“块”的XML。如果想使导出的XML更可读,那么可以使用Blockly.Xml.domToPrettyText来代替上面方法。

恢复己导出的XML,像下面这样即可:

var xml = Blockly.Xml.textToDom(xml_text);

Blockly.Xml.domToWorkspace(xml, workspace);

6. 云存储

Blockly 带有一个可选的云存储功能。它允许用户保存、加载、共享和发布程序。如果你的项目是在云端托管,那么你可以利用此服务的优势。

blockly和Java交互_blockly 基础学习(一)相关推荐

  1. java线程之基础学习

    java线程之基础学习总结 线程实现的两种方式: 在java中可以有两种方式实现多线程操作,一种是继承Thread类,另外一种是实现Runnable接口. 继承Thread类 Thread类是在jav ...

  2. java培训 | 零基础学习java开发的学习方法有哪些

    随着IT行业的不断发展,java根据自身的优势,得到大中小企业的青睐,由此可见java开发的应用市场不断扩大.有许多小伙伴进军java开发行业,那零基础学习java开发的学习方法有哪些? 无论是学习什 ...

  3. java三板斧_JAVA基础学习 三板斧

    JAVA基础学习 -1 三板斧 1. 引子 最近因为工作需要,开始学习JAVA,我之前常用的编程语言是C,C#,C++,基本没有用JAVA,JAVA需要从基础开始学习了. JAVA是从C++优化而来: ...

  4. Java小白零基础学习如何突破自己的方法

    有很多Java程序员在学习之初经常对如何学习感到困惑.本文将分析如何学习Java编程,并相信它可以帮助处于混乱状态的初学者. I.培养兴趣 兴趣是可以让你继续前进的动力.如果你只是把这个程序写成谋生手 ...

  5. 零基础是学java还是python-零基础学习编程,Java、Python你会选择哪个?

    现在很多零基础的小伙伴都想要进入到编程行业之中,无论什么情况选择哪门语言都非常重要,毕竟关系到以后的发展和薪资,很多人都知道Python是当下很火的语言,也知道Java是非常高级的编程语言,问题来了, ...

  6. 西安尚学堂Java软件开发基础学习内容

    一.软件开发 软件是一系列按照特定顺序组织的计算机数据和指令的集合. 1.数据就是指现实生活中的年龄.姓名等信息. 2.指令就是告诉计算机如何对数据进行处理. 常见的软件 系统软件(操作系统) 如:D ...

  7. 【Java】零基础学习Java需要多久?

    其实学java一般要多久?因人而异,例如一个零基础的小白自学java,每天学习8个小时来算,而且在有学习资料的基础上,每天学习,从零到找到工作,起码要半年起步,而且还要有项目经验,否则是不会有公司要你 ...

  8. Java内存模型基础学习(二)——絮叨一下可见性

    文章目录 前言 可见性 什么是可见性 JMM的抽象 happens-before原则 什么是happens-before happens-before的规则 实例解析 volatile关键字 vola ...

  9. java web开发基础学习

    由于以前很少用java开发,至于连myEclipse都不怎么熟悉.    1.使用myEclipse生成部署网站步骤. 选tomcat后点击右边的Redeploy 这样便在tomcat目录下生成了一个 ...

最新文章

  1. Android Service(7)--完结篇
  2. vi 打开不同编码的文件
  3. 设计模式之职责链模式
  4. 哔哩哔哩_哔哩哔哩,危!!!
  5. GIS实战应用案例100篇(二十一)-全国分省、市、县净初级生产力NPP数据制作实战(附代码)
  6. Sprint计划列表
  7. DropDownList.SelectedItem与DropDownList.SelectedValue的区别
  8. ipython版本_1. Python版本的选择与安装
  9. Hibernate 注解 没有加@Column一样会在数据库创建这些字段
  10. 矩形液体包装纸箱行业调研报告 - 市场现状分析与发展前景预测
  11. unity animator 动画 结束后保持位移_Unity动画系统详解9:Target Matching是什么?
  12. 程序员如何与产品经理优雅的干架
  13. android sqlite 保存图片,android-如何将图像在Sqlite数据库中另存为blob?
  14. MySQLsqlyog更新版
  15. 从IPv4 到 IPv6 的过渡技术
  16. 用户名修改后进入不了计算机,更改计算机用户名后不能登录到桌面怎么办?
  17. 数据库简介、SQL 语的增加删除修改查询命令
  18. STM32芯片烧录的三种方式介绍,串口、STM32 ST-LINK Utility以及STM32CubeProgrammer
  19. 《那些年啊,那些事——一个程序员的奋斗史》——43
  20. UVa 207 - PGA Tour Prize Money

热门文章

  1. html5 绘制图形,HTML5绘制几何图形
  2. 造句简单_造句游戏的心理投射:被现代心理学摒弃的网红心理游戏
  3. 机考可以作弊吗_法考主观题也全面机考?不慌,看这篇文章
  4. java语音开源_号外!号外!百度语音开源库更新了
  5. python tempfile cleanup_python tempfile 模块---生成临时文件和目录
  6. a标签去下划线或文字添加下修饰_HTML标签:字体标签和超链接
  7. c语言表示测试结束,C语言简单测试题
  8. python创建数据库的sql语句_对python插入数据库和生成插入sql的示例讲解
  9. 创建python虚拟环境,安装django,创建一个django项目,在项目中创建一个应用(ubuntu16.04)...
  10. 使用Jmeter压力测试工具测试