【Blockly开发教程】05 积木块基础概念(下)

本文详细介绍了Blockly中积木块的基础概念,包括颜色、连接、输入列表、禁用、可编辑等属性,以及配置、初始化、获取/设置、删除和移动等行为。同时,讲解了如何通过API和JSON定义块,并探讨了块的事件监听。
摘要由CSDN通过智能技术生成

你将收获

通过本文,你将收获:

  • 了解块的部分属性。
  • 了解块的部分函数。

分析技巧

为了方便我们观察和调试块的属性,我们使用blockly仓库,运行demo(请查看专栏第一篇文章:【Blockly开发教程】01 初识Blockly)。

然后打开控制台,使用Blockly全局对象来分析块的属性。分析步骤如下:

// 把需要分析的块拖到工作区
// 获取工作区对象
var workspace = Blockly.getMainWorkspace()
// 获取工作区中的积木块列表
var blocks = workspace.getTopBlocks()
// 在blocks中找到需要分析的积木块对象,如
var block1 = blocks[0]

在这里插入图片描述

块的属性

在Blockly运行后,块的定义会转换为块对象的属性。块的属性包括:颜色(colour_)、连接(nextConnection、previousConnection)、输入列表(inputList)、禁用(disabled)、提示(tooltip)、上下文菜单(contextMenu)、父积木块(parentBlock_)、子积木块(childBlocks_)、可删除(deletable_)、可编辑(editable_)、可移动(movable_)、输出类型(outputShape_)、帮助链接(helpUrl)、是否在工具箱(isInFlyout)、类型(type)等。

基本概念如图:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

颜色(colour_)

颜色属性用于定义块在工作区或工具箱中显示时的颜色。帮助于用户通过视觉区分不同类型的块,一般情况下,工具箱中一个分类下的积木块,颜色是一致的。
在这里插入图片描述
除了colour_属性,定义了块的颜色,还有style属性,定义了块的颜色、边框颜色、field颜色
在这里插入图片描述
说明如下:

  • colourPrimary:主要颜色,通常用于块的主要背景。
  • colourSecondary:次要颜色,可能用于块的特定部分,如输入或输出连接区域的背景。
  • colourTertiary:第三颜色,可能用于更细节的部分,比如块的边框或特定元素的高亮。
  • hat:这个属性通常用于定义块的“帽子”形状,即块顶部的凸起部分,它可以为空字符串,表示没有特殊的帽子形状。

连接(nextConnection、previousConnection、targetConnection)

  • previousConnection 表示块的上一个连接点对象,允许其他块通过它们的下一个连接点连接到此块。
  • nextConnection 表示块的下一个连接点对象,用于将该块连接到其他块的前一个连接点上,形成执行序列。

connection对象中,有个targetConnection字段,表示该积木块连接的另外一个积木块的连接对象,还不是另外一个积木块对象。

  • 当积木块没有连接时, targetConnection值为null
  • 当积木块连接了另一个积木块时,targetConnection.sourceBlock_则是另外一个连接的积木块对象。

字段图如下:
图中temp2是text_blocks,第一个积木块,他连接的积木块是loop_blocks

在这里插入图片描述
获取第二个积木块的方式:

const block2 = temp2.nextConnection.targetConnection.sourceBlock_;

或者使用封装的、更简单的接口获取下一个积木块:

const block2 = temp2.getNextBlock()

在这里插入图片描述
对应这两种情况,我们通过下图来理解:
在这里插入图片描述

输入列表(inputList)

输入列表包含了块的所有输入定义,无论是值输入还是语句输入。
如下图积木块,有两个输入,一个是可以嵌入其他积木块的输入ValueInput,另一个是内置下拉菜单,Blockly定义为DummyInput
在这里插入图片描述
对于输入,有这几个类型,也可以自定义,后续专门写一篇文章来细讲这块:
在这里插入图片描述

禁用(disabled)

禁用属性用于控制块是否可用。如果一个块被禁用,它通常显示为灰色,并且不能被用户交互。
在这里插入图片描述
查看属性:
在这里插入图片描述

可删除(deletable_)

可删除属性决定了用户是否可以通过用户界面删除这个块。如果设为不可删除,块将不能从工作区中移除。
当块的deletable_属性是false时,块不能被放进垃圾桶,右键菜单会隐藏删除选项。

可编辑(editable_)

可编辑属性控制块的文本是否可以被用户编辑。对于某些预定义的块或特定情况下的块,可能不允许用户编辑。
在这里插入图片描述
菜单也有所不同:

  • 不可编辑:
    在这里插入图片描述
  • 可编辑:
    在这里插入图片描述

可移动(movable_)

可移动属性决定了块是否可以在工作区中移动。如果设为不可移动,块的位置将固定,用户不能更改它。

提示(tooltip)

提示是当用户将鼠标悬停在块上时显示的简短文本。它提供了关于块功能或用途的快速说明。
在这里插入图片描述

上下文菜单使能(contextMenu)

上下文菜单是指用户可以通过鼠标右键点击块时出现的菜单。这个菜单通常包含一些操作选项,如复制、粘贴、删除或重命名块。
contextMenu用于

  • 28
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Bright_Lin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值