我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Google可视化编程工具Blockly入门

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Google可视化编程工具Blockly入门

blockly是google发布的可视化编程工具,是一个基于web技术构建的库;blockly的目的是帮助客户创建app,使得用户(app的使用者)编程就像搭积木一样的有趣、容易上手,大名鼎鼎的scratch就是一款使用类似技术的少儿编程工具。blockly有几个特点:

  1. 它是纯粹的javascript库。
  2. 它是100%面对客户端的,没有任何服务端的依赖。
  3. 支持各种主流的浏览器:Chrome, Firefox, Safari, Opera, and IE。
  4. 高度可定制和可扩展。

如果把blockly看作一个黑盒,它的输入就是用户拖放的代码块的组合,输出就是翻译出的JavaScript/python/PHP/Lua/Dart代码。

blockly能做什么?

近期工作的主要任务是针对公司的自动化测试框架进行改造,目前我司自动化测试就是使用python+selenium的方式进行自动化测试,测试人员需要使用原生的python代码进行测试用例的编写,对编程技能要求较高,我希望通过引入blockly为测试人员提供一个可视化的、搭建积木式的编写测试用例的GUI接口,降低自动化测试的上手门槛。

blockly上手示例

前提条件:需要对HTML、CSS、JavaScript有基本的了解

google官方提供的上手示例教程,这个示例是通过blockly创建一个简单的创造音乐的app,首先下载如下示例代码:

  1. git clone https://github.com/google/blockly-samples.git 

本示例代码路径如下:

 

 

getting-started-codelab

 

  • starter-code:为示例的初始代码;
  • complete-code:为示例完成后的代码,如果自己编写期间遇到卡壳的地方,可以和官方提供的完成代码进行对照。

每个目录都包含同样的目录和文件:

  • scripts/main.js - app的主逻辑代码
  • music_maker.js - 一个小型的用来播放声音的库
  • sounds/ - 声音文件
  • styles/ - CSS样式文件
  • index.html - 首页

浏览器打开starter-code/index.html,显示如下界面(如果首次打开不能完整显示,可能是网络原因,尝试刷新浏览器试试)

 

starter-code首页

 

编辑模式:

点击edit进行编辑模式,按照提示点击下方的任意数字进行代码编辑

 

编辑模式

 

点击任意一个数字之后,将显示一篇空白区域,这里就是我们需要使用blockly进行编码的地方

 

点击数字进行代码编辑

 

编辑index.html,在如下两行script代码之前增加一行代码,引入blockly库,

  1. "https://unpkg.com/blockly">   -- 这一行是增加的代码 --> 
  2. "scripts/music_maker.js"
  3. "scripts/main.js"

 

 

 

blockly将引入四个模块:

  • Blockly core: 主要的核心代码,主要定义了block UI及逻辑
  • Built-in block definitions: 常用的积木块定义如循环, 逻辑, 数据, 和字符串操作
  • The JavaScript generator: 将积木块生成JavaScript代码
  • English language files: 积木块的提示语言使用英语

创建blockly工作区:

工作区包括代码块编辑区和工具箱两部分

 

blocky工作区

 

编辑index.html在id="blocklyDiv"的div元素中增加如下xml结构:

  1. "toolbox" style="display: none"
  2.   "controls_repeat_ext"
  3.   name="TIMES"
  4.     "math_number"
  5.     name="NUM">5 
  6.      
  7.    
  8.    
  9.  

编辑scripts/main.js,在代码的最后添加如下代码

 

  1. Blockly.inject('blocklyDiv', { 
  2.     toolbox: document.getElementById('toolbox'), 
  3.     scrollbars: false 
  4.   }); 

现在刷新浏览器,点击edit进入编辑模式,点击任意数字,可以发现显示了blockly工具去,工具箱有一个代码块

 

toolbox工具箱有一个代码块

 

创建定制的代码块

本示例是一个创建音乐的app,我们需要创建一个能够播放声音的代码块,通过下拉菜单的方式选择不同的声音文件。

scripts目录下创建一个js文件,命名为sound_blocks.js,并在index.html首页中引入该js文件

  1. "https://unpkg.com/blockly"
  2. "scripts/music_maker.js"
  3. "scripts/sound_blocks.js">   --这是增加的代码行--> 
  4. "scripts/main.js"

 

 

 

 

然后在sound_blocks.js中添加如下代码

 

  1. Blockly.defineBlocksWithJsonArray([ 
  2.     { 
  3.         "type""play_sound"
  4.         "message0""Play %1"
  5.         "args0": [ 
  6.         { 
  7.             "type""field_dropdown"
  8.             "name""VALUE"
  9.             "options": [ 
  10.             ["C4""sounds/c4.m4a"], 
  11.             ["D4""sounds/d4.m4a"], 
  12.             ["E4""sounds/e4.m4a"], 
  13.             ["F4""sounds/f4.m4a"], 
  14.             ["G4""sounds/g4.m4a"], 
  15.             ["A5""sounds/a5.m4a"], 
  16.             ["B5""sounds/b5.m4a"], 
  17.             ["C5""sounds/c5.m4a"
  18.             ] 
  19.         } 
  20.         ], 
  21.         "previousStatement"null
  22.         "nextStatement"null
  23.         "colour": 355 
  24.     } 
  25. ]); 

以上js代码定义了类型为play_sound的代码块,还需要把它加入到html页面中才能显示

  1. "blocklyDiv" style="height: 480px; width: 400px;"
  2.     "toolbox" style="display: none"
  3.       "controls_repeat_ext"
  4.         name="TIMES"
  5.           "math_number"
  6.             name="NUM">5 
  7.                  
  8.              
  9.          
  10.         "play_sound">   -- 这是新增加的代码行 --> 
  11.      
  12.   
 

 

 

 

 

再次刷新浏览器,打开工具箱发现多了一个红色的代码块,该代码块可以用来播放sounds目录的声音文件

 

play_sound代码块

 

保存/加载工作区

现在构建好了需要的代码块,已经可以在代码编辑区进行编写了,接下来需要做的是保存和加载功能。

编辑scripts/main.js,save方法中增加如下代码,改代码实现用户点击保存是将工作区的代码块保存为xml格式

 

  1. function save(button) { 
  2.     // 增加的代码行 
  3.     button.blocklyXml = Blockly.Xml.workspaceToDom(Blockly.getMainWorkspace()); 
  4.   } 

保存成功后,下次进入点击数字进入工作区还需要将工作区的代码块加载出来,继续编辑main.js,增加如下方法

 

  1. // 增加的代码 --- start 
  2. function loadWorkspace(button) { 
  3.     let workspace = Blockly.getMainWorkspace(); 
  4.     workspace.clear(); 
  5.     if (button.blocklyXml) { 
  6.       Blockly.Xml.domToWorkspace(button.blocklyXml, workspace); 
  7.     } 
  8.   } 
  9. // 增加的代码 --- end 
  10.  
  11. function enableBlocklyMode(e) { 
  12.     document.body.setAttribute('mode''blockly'); 
  13.     currentButton = e.target; 
  14.     loadWorkspace(currentButton);   // 这一行是增加的代码 
  15.   } 

现在尝试刷新浏览器,点击edit进入编辑模式,点击指定数字进行代码块编辑后点击save保存,然后再次返回后工作区仍然保留了上次编辑的代码块。

 

保存工作区

 

生成JavaScript代码

编辑scripts/sound_blocks.js,增加如下代码

 

  1. Blockly.JavaScript['play_sound'] = function(block) { 
  2.   let value = '\'' + block.getFieldValue('VALUE') + '\''
  3.   return 'MusicMaker.queueSound(' + value + ');\n'
  4. }; 

这段代码的会将play_sound代码块生成如下js代码"MusicMaker.queueSound('Sounds/c4.m4a');"(注:这里展示的代码以C4选项为例)。

运行生成的JavaScript代码

编辑scripts/main.js,handlePlay方法中增加如下代码

 

  1. function handlePlay(event) { 
  2.   // 增加的代码 -- start 
  3.   loadWorkspace(event.target); 
  4.   let code = Blockly.JavaScript.workspaceToCode(Blockly.getMainWorkspace()); 
  5.   code += 'MusicMaker.play();'
  6.   try { 
  7.     eval(code); 
  8.   } catch (error) { 
  9.     console.log(error); 
  10.   } 
  11.   // 增加的代码 -- end 

现在music maker的app就全部完成,重新刷新浏览器,点击edit进入编辑模式,然后点击不同的数字进行编程,可以根据代码块的提示设置播放什么声音,播放的次数,编辑完成后点击Done就进入运行模式,此时点击相应的数字就会播放音乐了,还是蛮好玩的,快试试吧。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Google可视化编程工具Blockly入门

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Google可视化编程工具Blockly入门

Blockly是google发布的可视化编程工具,是一个基于web技术构建的库;blockly的目的是帮助客户创建app,使得用户(app的使用者)编程就像搭积木一样的有趣、容易上手,大名鼎鼎的scratch就是一款使用类似技术的少儿编程工

编程工具到可视化一文看懂

欢迎各位阅读本篇,编程就是让计算机为解决某个问题而使用某种程序设计语言编写程序代码,并最终得到结果的过程。本篇文章讲述了从编程工具到可视化表现的方式剖析,编程学习网教育平台提醒各位:本篇文章纯干货~因此大家一定要认真阅读本篇文章哦!
编程工具到可视化一文看懂
2024-04-23

形式化验证工具TLA+:程序员视角的入门之道

如何保证一致性库的正确性是一个很大挑战,我们引入了TLA+、Jepsen等工具保证一致性库的正确性。本文即从程序员视角介绍形式化验证工具TLA+。

Python学习教程:Python可视化工具包

Python学习教程:Python可视化工具包伙伴们,用Python做项目的你们做图表的时候有没有因为不知道用哪种又好看又好用的可视化工具包特纠结过?反正天秤座的小强是有些纠结的。在这里小强总结了八种在 Python 中实现的可视化工具包!
2023-06-02

Python编程之VTK库入门指南:学会使用Python编写3D可视化程序

VTK主要应用于科学可视化领域,例如医学图像处理、工程可视化、数学计算和物理仿真等领域。在医学领域,VTK可用于可视化影像数据,支持对CT、MRI、PET等图像数据进行分析和处理,并能生成3D图像。在工程可视化领域,VTK可用于渲染CAD模

编程入门之开发工具一键安装

难倒编程小白的第一件事 恐怕是“安装开发工具”,即便是很多 程序猿老司机,也最怕“换电脑、配环境”……

Python工程师常用的可视化工具有哪些

小编给大家分享一下Python工程师常用的可视化工具有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1、灯果数据可视化灯果数据可视化BI软件是新一代人工智能数
2023-06-02

Python工程师最常用到的可视化工具有哪些

这篇文章主要为大家展示了“Python工程师最常用到的可视化工具有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Python工程师最常用到的可视化工具有哪些”这篇文章吧。1、灯果数据可视化灯
2023-06-02

RedisDesktopManager(Redis可视化工具)安装及使用图文教程

这篇文章主要介绍了RedisDesktopManager(Redis可视化工具)安装及使用图文教程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
2023-05-18

Redis Desktop Manager(Redis可视化工具)安装及使用教程

一、工具/材料 官网下载:https://redisdesktop.com/download 百度网盘:https://pan.baidu.com/s/15xVRpCT8mkP2uT8PoBHT3g 提取码:v727 二、方法/步骤 1.
2023-08-17

8个免费工具,无需编码即可创建交互式数据可视化

在本文中,我将向您展示最佳的免费选项,以轻松地开始制作精美的可视化文件-留下诸如Power BI和Google Studio之类的复杂选项。

配置使用Navicat或PLSQL可视化工具远程连接Oracle

写在前面 本文讲解的是在没有 Oracle 环境,如何使用可视化工具配置远程连接服务器 Oracle 数据库。 目录 写在前面一、概述二、下载 Oracle Instant Client三、配置环境变量四、配置监听五、可视化工
2023-08-18

Go 程序运行时数据统计的可视化工具 Statsviz

今天跟大家介绍一款实时可视化 Go 程序运行时数据统计的工具 statsviz。
Go程序工具2024-12-02

受Python工程师喜欢的5个可视化工具分别是什么

这期内容当中小编将会给大家带来有关受Python工程师喜欢的5个可视化工具分别是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。如今,同质化的应用越来越多,应用开发者也开始在用户体验上下功夫,比如数据可
2023-06-02

用一个开源工具实现多线程 Python 程序的可视化

VizTracer 是一个追踪和可视化 Python 程序的工具,对日志、调试和剖析很有帮助。尽管它对单线程、单任务程序很好用,但它在并发程序中的实用性是它的独特之处。

Python工程师最喜欢使用的数据可视化工具有哪些

这篇文章将为大家详细讲解有关Python工程师最喜欢使用的数据可视化工具有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1、灯果数据可视化(http://www.dengguobi.com/)灯果数据
2023-06-01

热门标签

编程热搜

编程资源站

目录