分享好友 最新动态首页 最新动态分类 切换频道
blockly-android模块化/可视化编程(三)——自定义块并增加到项目中
2024-12-26 21:42


块的定义一般用json文件来表示,如下图所示中由“_blocks”结尾的json文件。
当然,我们注意到了这点,那么我们也要规范自己的命名方式,自定义块文件以 “_blocks”结尾



对于初次接触块文件的人来说,json的内容让我们不明所以。
其实,我们大可不必强行理解它。因为Google为我们提供了图形化编程工具Blockly Developer Tools来生成这些block、toolbox、workspace并且自动生成解析generator模板,非常方便。
地址: https://blockly-demo.appspot.com/static/demos/blockfactory/index.html
官方使用指导: https://developers.google.com/blockly/guides/create-custom-blocks/blockly-developer-tools
打开如下图所示



接下来,我们来学习Blockly Developer Tools的使用方法

1.工作模式切换
如下三个选项卡用于切换工作模式
        Block Factory用于制造block块
        Block Exporter用于将制造好的block块导出至文件
        Workspace Factory用于制造toolbox以及workspace


2.使用Block Factory制作block块





制作区同样也是一个可视化模块化编程区域,它同样拥有Toolbox,左侧的Input、Filed、Type、Colour就是分类
( C ategory)
        Input代表可输入的块,块必须基于它而制造,它有三种类型
                value input:用于接收一些值
                statement input:用于接收一些动作
                dummy input:“空输入”,它不接收输入,可用于定义变量或声明明某一动作等,如下是对ture的定义




        Field代表字段,返回一些诸如字符串、数字之类的值
        Type代表类型,一般用于对value input接收的值的类型进行限定
        Colour代表颜色,用于块颜色的定义



认识基本块


        name用于定义模块的名称
        inputs仅用于接收input块
        第一下拉框用于设定input块的展示样式,包括自动、 拓展显示、行内显示
        第二下拉框用于设置块的可连接方向
        colour用于设置块的颜色,颜色采用HSV( Hue-Saturation-Value )颜色空间定义,H代表色调,S代表饱和度,V代表明度,具体详见 https://baike.baidu.com/item/HSV/547122?fr=aladdin&fromid=12630604&fromtitle=HSV%E9%A2%9C%E8%89%B2%E7%A9%BA%E9%97%B4
颜色生成器: https://www.rapidtables.com/web/color/color-picker.html



如下以if else模块为例,我们就可以贯通上面所有的讲述


制作过程
    首先,if需要接收Boolean类型的参数,所以我们选择value input,并设置type为Boolean,加入文字显示“if”
    其次,if执行的语句我们需要用statement input来接收,并加入文字显示“do”
    再次,else部分无需任何输入,我们使用dummy input,加入显示文字“else”即可
    最后,else执行的语句我们同样用 statement input来接收,并加入文字显示“do”
      点击上方的保存,保存到Block Library中,下次打开网页依然可以进行编辑

    到这里,你会发现预览模块和我们要做的样子并不完全一样,是的,我们还需要处理一些细节
            设置连接方式,这里设置为上下皆可连接:top+bottom connections
            设置颜色,输入或拖动色彩盘,设置为345即可




至此,我们就完成了一个模块的创造,我们在右侧Block Definition中可以看到实时生成的代码,我们将其复制到我们项目的块定义文件中,并将此块添加到toolbox对应的分类中,即可在App中显示。


 



代码的解析就依赖于右下角的Generator stub中生成的模板代码,我们将其复制到我们项目的代码解析文件中,进行针对行的修改,即可让此模块在App上转换成对应代码,如

 



3.使用Block Exporter导出块至文件

    切换到Block Exporter,我们可以看到左边会将我们在Block Library中创造的Block全部展示出来,勾选我们需要的Block,并设置文件名称(需含拓展名,即可点击Export按钮进行导出块定义文件与解析模板文件




4.使用Workspace Factory制作toolbox和workspace

    切换到 Block Exporter,我们通过中部几个符号进行创建分类、删除分类、上下移动分类。
    创建分类后,可将左侧toolbox中的模块拖入其中,右侧可实时预览,制作完成后,可通过上方的Export按钮进行导出





5.使用生成的文件

    将以上生成的块定义文件、代码解析文件、Toolbox文件、workspace文件复制到我们项目的资产目录中,在代码中增加对这些文件的关联(见第一篇文章)后即可使用

制作区同样也是一个可视化模块化编程区域,它同样拥有Toolbox,左侧的Input、Filed、Type、Colour就是分类
( C ategory)
        Input代表可输入的块,块必须基于它而制造,它有三种类型
                value input:用于接收一些值
                statement input:用于接收一些动作
                dummy input:“空输入”,它不接收输入,可用于定义变量或声明明某一动作等,如下是对ture的定义
制作过程
    首先,if需要接收Boolean类型的参数,所以我们选择value input,并设置type为Boolean,加入文字显示“if”
    其次,if执行的语句我们需要用statement input来接收,并加入文字显示“do”
    再次,else部分无需任何输入,我们使用dummy input,加入显示文字“else”即可
    最后,else执行的语句我们同样用 statement input来接收,并加入文字显示“do”
      点击上方的保存,保存到Block Library中,下次打开网页依然可以进行编辑

    到这里,你会发现预览模块和我们要做的样子并不完全一样,是的,我们还需要处理一些细节
            设置连接方式,这里设置为上下皆可连接:top+bottom connections
最新文章
除百度谷歌以外,还有哪些靠谱的网站统计平台?盘点五个好用网站统计平台工具对比推荐,你的网站统计用哪个?
网站运营需安装统计工具分析访问量、用户体验及搜索数据。百度统计适合中文网站,Google统计适用于非中文网站但可能影响速度。易分析、51LA和友盟也是优秀的统计工具,但可能需付费。选择最适合自己需求的工具是关键。 1、百度
情侣飞行棋小程序搭建流程,一起来看看吧
本文将详细介绍情侣飞行棋小程序搭建流程,以及其中的一些重要细节和知识。如果你是一位开发者或者对小程序开发感兴趣的用户,相信这篇文章会给你带来帮助。我们需要明确小程序是一种运行在微信客户端的应用程序,它可以为用户提供丰富的功
品牌网站设计与打造方案全攻略
摘要:本设计方案旨在打造品牌网站,以提升品牌形象和知名度,吸引更多潜在客户。设计将注重用户体验和视觉效果的融合,以简洁明了的界面展示品牌特色。方案将考虑网站的响应速度和兼容性,确保用户在不同设备上都能顺畅浏览。通过精心策划
更持久才更好用,年货节手机怎么选?7款长续航手机选购推荐。
很显然,在能耗表现上,骁龙8gen3就是当前最强的处理器,明显好于自家上一代的8gen2,联发科的天玑9300因为现在长续航的手机选择不多,所以暂时还看不出端倪。一加12年货节期间最高免息分期24期,并且有加赠Enco Air 2i 活动。同样的229g,
【阿里翁●神马商城】~FDA新品~Stabilize heart 安心片
高血压的主要症状头晕、头痛 头晕是高血压最多见的症状,有些是一次性的,在突然站起来或蹲下时出现;有些是持续性的。头痛也是高血压的常见症状,多为搏动性的胀痛或持续性的钝痛,严重者甚至有炸裂性的剧痛。常在早晨睡醒时发生,起床下
零售数据分析之操作篇11:销售占比分析
各位数据的朋友,大家好,我是老周道数据,和你一起,用常人思维+数据分析,通过数据讲故事。上期内容和作业上一讲讲了排名与TOP的场景,排名是以排序为基础,从1开始标识其排名的序号;而TOP则是以排序为基础,仅显示N行或N%行记录。上一
试试长亭科技吧,阿里云子公司
❶让你和+2老板汇报nbsp;如果是好事,就是给你露脸的机会,展示他带出来的人能力还不错;如果是坏事,就是让你主动去背锅,展示他不知情且还有管理空间nbsp;知彼解己,抓住每次和+2或大老板们汇报的机会,提前做充分准备nbsp;❷让你去做统
独立站卖家如何布局Google SEO?
做,大部分商家会选择见效快的付费,随着平台CPM节节攀升,群里好多人反馈广告花费更高了,广告效果却变差了。跑广告受伤的人怎么办?我们怎么能放过免费流量呢,FunnPin独立站学院特特别课堂开始了:独立站卖家应该如何布局Google SEO?什
高级设计师如何做搜索功能?来看这篇超全面的总结!
宜信大数据创新中心-UI 设计师李婷婷 :文章带大家一起了解如何通过设计提升搜索功能的视觉层次、情感体验、搜索效率等。一、搜索功能的作用搜索是我们经常使用的功能,当我们面对复杂的信息时,想找到目标信息,就会寻找搜索功能的位置,
网站优化是什么?介绍网站优化方式与好处
网站优化的术语是SEO优化,它是利用搜索引擎的搜索规则来提高当前网站在相关搜索引擎中的自然排名。接下来我们一起看看网站优化的好处和优化方法吧。一、网站优化的好处1、发挥企业产品和品牌推广作用经过SEO优化后,企业网站可以获得更高
相关文章
发表评论
0评