工作区上的每个更改都会触发一个事件。这些事件完整地描述了每个变化的前后状态。

监听事件

工作区具有可用于侦听事件流的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 函数,只要块的工作空间发生更改,就会调用该函数。

事件类型

所有事件共享以下常见属性:

Name

类型

描述

type

Blockly.Events.CREATE,Blockly.Events.DELETE,Blockly.Events.CHANGE,Blockly.Events.MOVE,Blockly.Events.UI之一

workspaceId

工作区的UUID。可以找到工作区Blockly.Workspace.getById(event.workspaceId)

blockId

块的UUID。该块可以找到workspace.getBlockById(event.blockId)

group

组的UUID。某些事件是不可分割的组的一部分,例如在堆栈中插入语句

块创建事件(Blockly.Events.BLOCK_CREATE)

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

Name

类型

描述

xml

宾语

定义新块和任何连接子块的XML树

ids

排列

一个数组,包含新块的UUID和任何连接的子块

块删除事件(Blockly.Events.BLOCK_DELETE)

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

Name

类型

描述

oldXml

宾语

定义已删除块和任何已连接子块的XML树

ids

排列

包含已删除块的UUID和任何已连接子块的数组

块变更事件(Blockly.Events.BLOCK_DCHANGE)

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

Name

类型

描述

element

‘field’,’comment’,’collapsed’,’disabled’,’inline’,’mutate’之一

name

当字段更改时字段的名称

oldValue

原有值

newValue

新值

块移动事件(Blockly.Events.BLOCK_MOVE)

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

Name

类型

描述

oldParentId

旧父块的UUID。如果它是顶级块,则未定义

oldInputName

旧父块的输入名称。如果它是顶级块或父级的下一个块,则为未定义

oldCoordinate

宾语

X和Y坐标,如果它是顶级块。如果有父块,则未定义

newParentId

新父块的UUID。如果它是顶级块,则为未定义

newInputName

新父母的输入名称。如果它是顶级块或父级的下一个块,则为未定义

newCoordinate

宾语

X和Y坐标,如果它是顶级块。如果它有父项,则为未定义

变量创建事件(Blockly.Events.VAR_CREATE)

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

Name

类型

描述

varType

变量的类型,如’int’或’string’。不需要是唯一的。这将默认为“”,这是一种特定类型

varName

变量的名称。这在变量和过程中是唯一的

varId

变量的唯一ID

变量删除事件(Blockly.Events.VAR_DELETE)

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

Name

类型

描述

varType

变量的类型,如’int’或’string’。不需要是唯一的。这将默认为“”,这是一种特定类型

varName

变量的名称。这在变量和过程中是唯一的

varId

变量的唯一ID

变量重命名事件(Blockly.Events.VAR_RENAME)

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

Name

类型

描述

oldName

变量的当前名称。这在变量和过程中是唯一的

newName

变量的新名称。这在变量和过程中是唯一的

varId

变量的唯一ID

UI事件(lockly.Events.UI)

UI事件有三个附加属性。

Name

类型

描述

element

‘selected’,’category’,’click’,’commentOpen’,’mutatorOpen’,’warningOpen’,’theme’之一

oldValue

原始价值

newValue

改变了价值

预计由UI事件表示的UI动作列表将随着时间的推移变得更加全面。例如滚动,缩放,拖动气泡等事件。

blockly自定义中文出问题_3.8 事件 - Blockly 二次开发文档中文版相关推荐

  1. Z-Stack Home Developer's Guide—6. Clusters, Commands and Attributes中文翻译【Z-Stack Home 1.2.0的开发文档】

    这篇文章将翻译Z-Stack Home Developer's Guide开发文档中的6. Clusters, Commands and Attributes部分,在Z-Stack中Cluster.C ...

  2. blockly自定义中文出问题_Blockly使用二

    3. 自定义积木 虽然Blockly定义了许多标准积木,但大多数应用程序需要定义和实现至少一些域相关积木,这也是Scartch3.0 Blocks使用Blockly的原因,可扩展性强. 积木由三个部分 ...

  3. blockly自定义中文出问题_Blockly教程 创建自定义块-Blockly 开发者工具

    [suxing_insert_post ids=163] Blockly Developer Tools是一个基于Web的开发者工具,它可以通过配置自动化的完成 Blockly 组件开发,包括创建自定 ...

  4. blockly自定义中文出问题_[BlocklyNukkit入门]#5自定义物品

    自定义物品 创建一个木棍 item = blockitem.buildItem(280, 0, 1); 设置名字 item.setCustomName("棍"); 设置信息,用分号 ...

  5. blockly自定义中文出问题_Blockly 中文文档(翻译)

    目录 概述 获取代码 注入 Blockly 配置 代码生成器 引入和导出块 云存储 概述 Blockly 可以很容易的添加到你的 web 应用, 用户拖拽砖块, Blockly 就会生成代码, 你的应 ...

  6. Z-Stack Home Developer's Guide—7.EZ-Mode中文翻译【Z-Stack Home 1.2.0的开发文档】

    7. EZ-Mode EZ-Mode提供了两个设备正常交流的能力,无论这个2个设备是否在zigbee网络中.它包括网络控制.网络发现和网络绑定.EZ-Mode有如下特性: 网络控制 - 找到第一个开放 ...

  7. Android官方开发文档Training系列课程中文版:创建自定义View之View的创建

    原文地址:http://android.xsoftlab.net/training/custom-views/index.html 引言 Android框架含有大量的View类,这些类用来显示各式各样 ...

  8. android 中文开发文档

    android 中文开发文档 ,请点击一下连接,学习官方开发文档 https://developer.android.google.cn/training/basics/firstapp

  9. python图形绘制库turtle中文开发文档及示例大全【最详细、连结果图都有,gif格式的!】

    前言 本文参考:Python库官方文档 本文例子摘抄自Python库官方文档,为了方便讲解,个人进行了修改,并且相关函数说明不完全参照文档,在结果处贴出了执行结果,不方便用jpg等图片作为展示的用了g ...

最新文章

  1. 如何简单形象又有趣地讲解神经网络是什么?(知乎) 说的人很多,理解很充分_kebu12345678的博客-CSDN博客_神经网络知乎
  2. AI产业链分布图曝光:1040个玩家,BAT率先步入应用
  3. 你的企业客户服务,离卓越还有多远?
  4. TCP为什么需要三次握手
  5. Linux之Json20160705
  6. ubuntu16.04 64bit 安装 ida
  7. 腾讯广告算法大赛 | 初赛第一名心得分享
  8. Linux内核Makefile文件
  9. 【转】oracle in和exists、not in和not exists原理和性能探究
  10. 解析6种常用View 的滑动方法
  11. mysql 内置存储过程_数据库:mysql内置功能-存储过程
  12. Netlink套接字
  13. 【源码好又多】开源在线教育系统
  14. mybatis笔记-8、动态sql
  15. 全网最详细的Android11.0长按power键关机流程分析
  16. 手机内置摄像头接线图解_坚果R2 手机官方壁纸
  17. 移动云计算的四大特点
  18. paraview热流图(1):添加glyphs
  19. 初试-基于神经网络的植物识别
  20. 服务器性能计时器如何关闭,如何在游戏关闭时继续倒数计时器?

热门文章

  1. 机器学习特征筛选:方差选择法VarianceThreshold
  2. 大数据时代千帆竞发,三代测序激流勇进
  3. R语言入门——ggplot2
  4. 试编写一个汇编语言程序,要求对键盘输入的小写字母用大写字母显示出来
  5. java 两个值对换_java将两个整型变量值进行互换的几种实现方法
  6. sqlalchemy.exc.InternalError: (pymysql.err.InternalError) Packet sequence number wrong - got 40 expe
  7. Windows系统下MySQL安装详细教程(解决MySQL服务无法启动)
  8. ClickHouse系列教程一:Debian/Ubuntu 下ClickHouse的安装和使用
  9. 报错解决:InvalidArgumentError: Can not squeeze dim[1], expected a dimension of 1, got
  10. windows链接Linux的pgsql,postgreSQL在CMD里怎么连接