blockly-- 事件

Android Blockly积木编程源码对Workspace中的block数据保存及读取的流程,及改造原生代码实现Trash垃圾桶中的block保存及读取 Android Blockly积木编程源码对Workspace中的block数据保存及读取的流程,及改造原生代码实现Trash垃圾桶中的block保存及读取。 立即下载

事件

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

监听事件

工作区具有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 函数,只要该块的工作区发生更改,该函数就会被调用。

活动类型

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

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

Blockly.Events.BLOCK_CREATE

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

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

Blockly.Events.BLOCK_DELETE

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

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

Blockly.Events.BLOCK_CHANGE

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

名称类型描述
elementstring 'field', 'comment', 'collapsed', 'disabled', 'inline', 'mutate' 
namestring字段名称(如果这是对字段的更改)。
oldValuevalue原始值。
newValuevalue更改值。

Blockly.Events.BLOCK_MOVE

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

名称类型描述
oldParentIdstring旧父块的UUID。如果是顶级块,则未定义。
oldInputNamestring旧的输入名称。如果是顶级块或父级的下一个块,则未定义。
oldCoordinateobjectX和Y坐标(如果它是顶级块)。如果有父级,则未定义。
newParentIdstring新父块的UUID。如果是顶级块,则未定义。
newInputNamestring新父项的输入名称。如果是顶级块或父级的下一个块,则未定义。
newCoordinateobjectX和Y坐标(如果它是顶级块)。如果有父级,则未定义。

Blockly.Events.VAR_CREATE

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

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

Blockly.Events.VAR_DELETE

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

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

Blockly.Events.VAR_RENAME

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

名称类型描述
oldNamestring变量的当前名称。这在变量和过程中是唯一的。
newNamestring变量的新名称。这在变量和过程中是唯一的。
varIdstring变量的唯一ID。

Blockly.Events.UI

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

名称类型描述
elementstring'selected', 'category', 'click', 'commentOpen', 'mutatorOpen', 'warningOpen', 'theme'
oldValuevalue原始值。
newValuevalue更改值。

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

这是 使用事件在两个Blockly实例之间进行同步的实时演示。

node-blockly:通过CommonJS模块对Node.js和浏览器进行阻止 通过CommonJS模块对Node.js和浏览器进行阻止 支持JavaScript , PHP , Dart , Lua和Python生成器。 带有异步语言环境的 安装 yarn add node-blockly 用法 Node.js 所有发电机 var Blockly = require ( 'node-blockly' ) ; 或者您可以使用独立的生成器来减少内存使用量 var Blockly = require ( 'node-blockly/lua' ) ; 浏览器 所有发电机 var Blockly = require ( 'node-blockly/browser' ) ; 例子 Node.js var Blockly = require ( 'node-blockly' ) ; var xmlText = `<xml xmlns="http://www.w3.or 立即下载

相关推荐

如何使用JMeter进行大模型的压力测试?

使用JMeter进行大模型的压力测试,核心是通过模拟高并发请求,测试大模型在极限负载下的性能表现(如响应时间、吞吐量、错误率、资源瓶颈等)。通过以上步骤,可系统性评估大模型在高压下的性能极限,为优化模型(如量化、蒸馏)、扩容硬件(增加GPU)或调整接口限流策略提供数据依据。)、请求方式(POST)、认证方式(API Key放在Header)、请求参数(作用:避免瞬间高压压垮系统,更精准找到瓶颈点。等)、响应格式(同步/流式)。需获取:API地址(如。通过CSV文件引入不同。

alankuo的专栏 793

Blockly 各种类原型链字典

workSpace对象 类:WorkspaceSvg RTL: false audioManager_: WorkspaceAudio {parentWorkspace_: null, SOUNDS_: {…}} blockDB_: {+E)t~l^QDkZ|a`?$XCPG: BlockSvg, cC#n)tK{ZT{}WM%:+HP(: BlockSvg, hGC%mXkf8}gLFcyZEsYU: BlockSvg, Dtm]L3^9%?OOgzj/sx,h: BlockSvg, Klxc}O.

hh19558138的博客 1247

手把手教你用Silvaco Atlas复现GaN蓝光LED仿真:从网格划分到光谱分析全流程避坑

本文详细介绍了如何使用Silvaco Atlas进行GaN蓝光LED仿真,从网格划分到光谱分析的全流程避坑指南。重点讲解了网格划分技巧、材料参数设置、极化效应处理以及结果分析方法,帮助用户快速掌握半导体器件仿真技术,提升研发效率。

weixin_42552716的博客 225

blockly 学习----2.代码生成、网格、缩放、事件、存储

blockly 学习 1.代码生成器 第一步是包含相关语言的生成器。Blockly包括以下生成器: javascript_compressed.js python_compressed.js php_compressed.js lua_compressed.js dart_compressed.js 应该包含生成器类blockly_compressed.js。 &lt;script src="...

go含羞草 3359

深入解析YT8521S千兆以太网PHY芯片的设计与调试要点

本文深入解析了YT8521S千兆以太网PHY芯片的设计与调试要点。重点剖析了硬件设计中的电源方案、RGMII接口电平配置(尤其是1.8V电平方案)以及PCB布局布线等关键细节,并提供了从硬件检查、驱动配置到性能测试的完整调试流程,帮助工程师规避常见陷阱,实现稳定可靠的千兆网络连接。

weixin_29190573的博客 689

VS Code配合Prettier自动格式化代码

每次修改 .prettierrc.cjs 配置文件后,如果发现保存代码时格式化没有生效,可能是 VS Code 插件缓存未及时刷新。建议此时重启 VS Code,确保新的配置被正确加载并生效。

分享技术,分享经验 7423

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

工作区上的每个更改都会触发一个事件。这些事件完整地描述了每个变化的前后状态。监听事件工作区具有可用于侦听事件流的addChangeListener方法和removeChangeListener方法。一个例子是 实时生成代码。另一个例子是 最大块限制演示。通常情况下,这两个例子都不关心触发事件是什么。他们只是查看工作区的当前状态。更复杂的事件监听器将查看触发事件。以下示例检测用户何时创建其第一条评论...

weixin_39972567的博客 729

【主力资金密码】副图指标升级版使用技术图文案例分解,通达信软件炒股指标公式代码

(1)主力资金线在低位时,对应的副图指标显示柱线是绿色,这个阶段主力资金参与小,行情处于下跌趋势或弱势震荡。当然,如果结合主图指标【翻倍密码系统】操作,主图的两个买卖点以及K线均线变色跟踪功能,更多的技术支撑,多空更加清晰,共振做多或多头更加确定和安全。如上图标记,中档虚线是参考安全操作的一个区间划分,粉色阶段做多或持股为主,为操作增加一道安全保护。如上图,副图指标【主力资金密码】更新叠加操作区间背景,绿色阶段持币或做空,粉色阶段做多或持股。如上图,副图指标,标记的两个区间,绿色区间时做空或持币。

weixin_69760830的博客 2557

Blockly 的配置

本文基于Web Blockly,整理一下可视化编程工具-Blockly 的常用配置,包括:工作区配置、添加自定义块、配置工具箱、配置代码生成器等。固定尺寸工作区可调尺寸工作区添加自定义块(Block)工具箱(Toolbox)配置代码生成器网格(Grid)缩放(Zoom)事件云存储1. 固定尺寸工作区把 Blockly 放到网页上最简单的方法是将其注入到一个空div中。1.1 引入 Blockly ...

xiatiancc的专栏 5976

PLSQL 14.0.6 下载使用教程

众所周知,PLSQL 只是一个oracle第三方开发测试工具,它依赖oracle 客户端搭配使用,但是oracle 客户端有2G,相当庞大,不建议安装。所以我们如果下载安装好PLSQL,再下载好轻量级的支持远程链接的oracle客户端,这样搭配使用可以的话就最好了,答案是可以的。 第一步: PLSQL 下载与安装 PLSQL 14.0.6 下载地址 : https://www.allroundautomations.com/registered-plsqldev/ 下载下来,除了安装路径更改一下,

qq976511508的博客 2135

浪涌抗扰度部分解读

8.3 测试仪器: 8.3.1浪涌发生器(对于连接到对称通信线的接口采用10/700us的组合波发生器;对于其他情况采用1.2/50us(8/20us)组合波发生器,输出极性正负可调、移相范围0-360°可调,最大重复率至少每分钟1次,开路输出电压0.5-4kV,电源线的话有效效输出阻抗为2Ω,通信线的话有效输出阻抗为40Ω) 8.3.2 耦合/去耦网络 8.3.3 参考接地平板 8...

喵叫兽的博客 2505

来算google的可视化编程工具——Blockly,不仅仅是玩具

Blockly - 来自Google的可视化编程工具     Google Blockly 是一款基于Web的、开源的、可视化程序编辑器。你可以通过拖拽块的形式快速构建程序,而这些所拖拽的每个块就是组成程序的基本单元。可视化编程完成,Blockly 直接支持 JavaScript、Python、PHP、Lua、Dart 语言源码的导出。此外,还可以将 Blockly 编辑器快速集成到W...

听雨轩 7105

基于Simulink的轨道交通信号控制系统仿真详细介绍

轨道交通信号控制系统是确保列车安全、高效运行的核心技术。通过Simulink进行信号控制系统的仿真,可以验证系统的设计、优化调度策略并提高安全性。以下是如何在MATLAB和Simulink中设计并仿真一个轨道交通信号控制系统的详细步骤。通过上述步骤,我们成功设计并实现了基于Simulink的轨道交通信号控制系统仿真。该系统能够根据列车位置、速度和轨道状态生成控制指令,确保列车的安全、高效运行。通过虚拟场景仿真、硬件在环测试和实机测试,验证了系统的性能,并通过参数优化进一步提升了系统的可靠性。引入智能调度。

xiaoheshang_123的博客 463

超实用Blockly事件系统详解:打造流畅编程体验

Blockly是一款强大的基于Web的可视化编程编辑器,其事件系统是实现交互功能的核心。本文将详细介绍Blockly事件系统的工作原理、核心组件及实用技巧,帮助开发者快速掌握如何利用事件系统提升编程体验。 ## 一、Blockly事件系统基础 Blockly事件系统负责处理用户在编程过程中的各种操作,从简单的点击到复杂的块拖拽,都离不开事件的驱动。事件系统主要由事件类型、事件处理和事件分发三部

gitblog_01097的博客 847

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Blockly 事件系统详解:构建交互式编程体验的核心

Blockly 作为一款强大的可视化编程编辑器,其事件系统是实现用户交互、状态追踪和协作功能的关键组件。本文将深入解析 Blockly 事件系统的设计理念、核心架构以及实际应用场景,帮助你全面掌握这一强大工具。 ## 🎯 Blockly 事件系统概述 Blockly 事件系统是一个基于发布-订阅模式的异步通信机制,它负责捕获和处理在编程工作区中发生的所有用户操作。从积木块的拖拽、变量的创建,

gitblog_01037的博客 869

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

告别卡顿:Blockly事件委托模式如何拯救你的可视化编程界面

你是否也曾遇到这样的情况:当你的Blockly工作区中添加了成百上千个积木块时,界面变得越来越卡顿,尤其是在进行拖拽、点击等交互操作时?作为一款基于Web的可视化编程编辑器(Visual Programming Editor),Blockly需要高效处理大量DOM元素的事件响应,而传统的事件绑定方式往往成为性能瓶颈。本文将深入解析Blockly如何运用事件委托(Event Delegation)模...

gitblog_00628的博客 423

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Blockly 事件系统终极指南:如何实现组件间完美解耦通信

Blockly 是一个基于 Web 的可视化编程编辑器,它的事件系统是整个框架实现组件间解耦通信的核心机制。无论你是初学者还是资深开发者,掌握Blockly事件系统都能让你的项目获得更好的可维护性和扩展性。 ## 🎯 Blockly 事件系统核心概念 Blockly 事件系统采用**观察者模式**实现组件间的松耦合通信。当用户操作代码块、变量、工具箱等组件时,系统会自动触发相应事件,其他组件

gitblog_00631的博客 650

7个实战技巧掌握Blockly高级事件处理:从基础监听到底层优化的响应式编程交互

你是否还在为Blockly可视化编程中的复杂交互逻辑头疼?当用户拖动积木、修改数值或删除代码时,如何精准捕获这些操作并触发相应功能?本文将通过7个进阶技巧,带你从事件监听基础到自定义事件设计,全面掌握Blockly事件系统的核心能力,让你的可视化编程工具拥有丝滑的响应式交互体验。 读完本文你将学到: - 事件系统的底层工作原理与核心类结构 - 5种常用事件类型的实战监听技巧 - 自定义事件的完整...

gitblog_00193的博客 812

1.4 Blockly库核心概念入门:工作区、积木、代码生成与事件系统

本文系统介绍了Blockly可视化编程工具的四大核心概念:工作区(可视化编程画布)、积木(基本构建单元)、代码生成(转换为文本代码)和事件系统(交互基础)。详细讲解了工作区配置、自定义积木创建、代码生成器编写以及事件处理机制,并分析了四者之间的关联关系。文章还提供了Blockly开发的最佳实践建议,包括工作区优化配置、积木设计原则等,帮助开发者快速掌握Blockly的核心功能,为Blockly Games开发奠定基础。

AI 题库 —— 软件编程老兵专属分享阵地,聚焦青少年编程等级考、Python/C++ 信息学奥赛、机器人技术等级考试备考干货,依托智能题库资源,用 5 年一线教学经验助力编程学习高效备考! 844

Blockly 可共享过程块插件(@blockly/block-shareable-procedures)完整实战指南:基于数据模型的过程定义、跨工作区共享与事件体系

本指南围绕 Blockly 官方插件 [@blockly/block-shareable-procedures](https://link.gitcode.com/i/0d0aa1582490e44277aef63767fe2c2d) 展开。该插件提供一套与 Blockly 内置过程块同名(`procedures_defnoreturn`、`procedures_callnoreturn`、`pr

gitblog_01032的博客 128

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

3. 自定义积木虽然Blockly定义了许多标准积木,但大多数应用程序需要定义和实现至少一些域相关积木,这也是Scartch3.0 Blocks使用Blockly的原因,可扩展性强。 积木由三个部分组成: 积木定义对象:定义积木的外观和行为,包括文本,颜色,字段和连接。 添加积木到Toolbox:工具箱XML中对积木类型的引用,因此用户可以将其添加到工作区。 添加积木代码:生成此积木的代码字符串。...

weixin_39774682的博客 483

Blockly的配置

Blockly 的配置 本文基于Web Blockly,整理一下可视化编程工具-Blockly 的常用配置,包括:工作区配置、添加自定义块、配置工具箱、配置代码生成器等。 固定尺寸工作区 可调尺寸工作区 添加自定义块(Block) 工具箱(Toolbox)配置 代码生成器 网格(Grid) 缩放(Zoom) 事件 云存储 1. 固定尺寸工作区 把 Blockly 放到网页上最...

BianHuanShiZhe的专栏 1481

blockly 代码html,blockly.html

Document输出运行ABC合格ii00正则表达式i0101sub专业水平001021511sub专业水平002022311sub专业水平002033sub专业水平A041200sub解决程度05010态度语气06id="1}VFC;vv5}*}i/dAQ{~k">1id="|[btW##~9~bo@32|zcr%">011id="xx7ju)8S2ctCCuSW5nmI">s...

weixin_29790467的博客 298

告别代码冲突:Blockly实时协作的两种核心解决方案深度解析

Blockly作为一款强大的Web可视化编程编辑器,让开发者能够通过拖拽积木块轻松创建代码逻辑。然而在团队协作场景中,多人同时编辑同一项目时常面临代码冲突问题。本文将深入解析Blockly实时协作的两种核心解决方案,帮助开发团队实现无缝协作,提升开发效率。 ## 一、基于事件同步的协作方案:实时捕捉每一个操作 Blockly的事件系统是实现实时协作的基础,通过监听和同步工作区的每一个变化,确保

gitblog_00684的博客 761

scratch-blocks核心架构揭秘:从Blockly到Scratch的演变历程

Scratch Blocks是一款用于构建创意计算界面的强大库,它基于Google和Raspberry Pi Foundation的Blockly库开发而来,为视觉编程界面提供了设计规范和代码基础。通过与Scratch虚拟机(VM)结合,开发者可以快速设计和开发出高度动态、交互性强的编程环境。 ## 从Blockly到Scratch Blocks的重大转变 Scratch Blocks 2.0

gitblog_00947的博客 1112

可视化编程新范式:Blockly核心架构的设计哲学与实践

你是否曾惊叹于拖拽积木就能创建程序的神奇体验?是否好奇这些彩色方块背后隐藏着怎样的技术架构?本文将带你深入探索Blockly——这款由Google开发的可视化编程工具的核心架构,揭示其如何通过精妙设计让编程变得像搭积木一样简单直观。读完本文,你将掌握可视化编程的核心原理,理解Blockly如何平衡易用性与功能性,并能借鉴其设计思想构建自己的低代码平台。 ## 核心架构概览:五大模块的协同交响 ...

gitblog_00505的博客 749
上一篇: blockly - 缩放
下一篇: blockly -- 定义块
wolf131721
博客等级 码龄9年 38粉丝 31原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值