Blockly 事件

工作区上的每个更改都会触发一个事件。这些事件充分描述了每个更改的前后状态。

事件

工作区上的每个更改都会触发一个事件。这些事件充分描述了每个更改的前后状态。

监听事件

工作区具有addChangeListener和removeChangeListener方法,可用于侦听事件流。一个示例是 实时生成代码。另一个示例是 最大块限制演示。通常,这两个示例都不关心触发事件是什么。他们只是查看工作区的当前状态。

一个更复杂的事件侦听器将查看触发事件。下面的示例检测用户何时创建其第一条评论,发出警报,然后停止收听,以便不再触发其他警报。

function onFirstComment(event) {
  if (event.type == Blockly.Events.CHANGE &&
      event.element == 'comment' &&
      !event.oldValue && event.newValue) {
    alert('Congratulations on creating your first comment!')
    workspace.removeChangeListener(onFirstComment);
  }
}
workspace.addChangeListener(onFirstComment);


块有另一种监听事件流的方法。块可以定义一个 onchange 函数,只要该块的工作区发生更改,该函数就会被调用。

活动类型

所有事件共享以下公共属性。

名称 类型 描述
type string Blockly.Events.CREATE,Blockly.Events.DELETE,Blockly.Events.CHANGE,Blockly.Events.MOVE,Blockly.Events.UI。
workspaceId string UUID of workspace. The workspace can be found with Blockly.Workspace.getById(event.workspaceId)
blockId string UUID of block. The block can be found with workspace.getBlockById(event.blockId)
group string UUID of group. Some events are part of an indivisible group, such as inserting a statement in a stack.

Blockly.Events.BLOCK_CREATE

块创建事件具有两个附加属性。

名称 类型 描述
xml object 定义新块和任何连接的子块的XML树。
ids array 包含新块和任何连接的子块的UUID的数组。

Blockly.Events.BLOCK_DELETE

块删除事件具有两个附加属性。

名称 类型 描述
oldXml object 定义删除的块和任何连接的子块的XML树。
ids array 包含已删除块和任何连接的子块的UUID的数组。

Blockly.Events.BLOCK_CHANGE

块更改事件具有四个附加属性。

名称 类型 描述
element string  'field', 'comment', 'collapsed', 'disabled', 'inline', 'mutate' 
name string 字段名称(如果这是对字段的更改)。
oldValue value 原始值。
newValue value 更改值。

Blockly.Events.BLOCK_MOVE

块移动事件具有六个附加属性。

名称 类型 描述
oldParentId string 旧父块的UUID。如果是顶级块,则未定义。
oldInputName string 旧的输入名称。如果是顶级块或父级的下一个块,则未定义。
oldCoordinate object X和Y坐标(如果它是顶级块)。如果有父级,则未定义。
newParentId string 新父块的UUID。如果是顶级块,则未定义。
newInputName string 新父项的输入名称。如果是顶级块或父级的下一个块,则未定义。
newCoordinate object X和Y坐标(如果它是顶级块)。如果有父级,则未定义。

Blockly.Events.VAR_CREATE

变量创建事件具有两个附加属性。

名称 类型 描述
varType string 变量的类型,例如“ int”或“ string”。不需要唯一。这将默认为“”,这是一种特定类型。
varName string 变量的名称。这在变量和过程中是唯一的。
varId string 变量的唯一ID。

Blockly.Events.VAR_DELETE

变量删除事件具有两个附加属性。

名称 类型 描述
varType string 变量的类型,例如“ int”或“ string”。不需要唯一。这将默认为“”,这是一种特定类型。
varName string 变量的名称。这在变量和过程中是唯一的。
varId string 变量的唯一ID。

Blockly.Events.VAR_RENAME

变量重命名事件具有两个附加属性。

名称 类型 描述
oldName string 变量的当前名称。这在变量和过程中是唯一的。
newName string 变量的新名称。这在变量和过程中是唯一的。
varId string 变量的唯一ID。

Blockly.Events.UI

UI事件具有三个附加属性。

名称 类型 描述
element string 'selected', 'category', 'click', 'commentOpen', 'mutatorOpen', 'warningOpen', 'theme'
oldValue value 原始值。
newValue value 更改值。

可以预期,随着时间的流逝,由UI事件表示的UI动作列表将变得更加全面。例如scrolling, zooming, dragging bubbles, etc等事件。

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

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

涨知识
PWM

PWM,英文名Pulse Width Modulation,是脉冲宽度调制缩写,它是通过调节占空比的变化来调节信号、能量等的变化。

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

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


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

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


Scratch积木指令详解

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


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

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


MicroBlocks介绍

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

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

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