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   阅读(35)   评论(0)
 标签: program Blockly Graphical

涨知识
中断

中断是指计算机运行过程中,出现某些意外情况需主机干预时,机器能自动停止正在运行的程序并转入处理新情况的程序,处理完毕后又返回原被暂停的程序继续运行。

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

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


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

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


Scratch积木指令详解

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


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

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


MicroBlocks介绍

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


少儿编程入门之Blockly Games

Blockly Games 是为没有计算机编程经验的孩子们设计的一系列学习编程的游戏。


适用于LEGO EV3的Microsoft MakeCode

今天我们非常高兴地宣布为乐高头脑风暴教育EV3制作MakeCode!这是我们与乐高教育的优秀合作伙伴一起进行的数月工程,设计和用户测试工作的结晶。


Scratch少儿编程扫雷教程

“扫雷”是一款大众类的益智小游戏,于1992年发行。游戏目标是在最短的时间内根据点击格子出现的数字找出所有非雷格子,同时避免踩雷,踩到一个雷即全盘皆输。



利用Tinkercad Codeblocks编程创建3D模型

Tinkercad通过Codeblock的发布将编程引入其3D建模平台。跟其他普通图形环境中那样绘制设计不一样,这是面向对象的编程,这意味着您将预定义的物体放在工作平面上,然后对其进行修改。

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

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