问题标签 [google-blockly]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
363 浏览

blockly - 如果目标用作 StatementInput,则防止将新块附加到同一类型

我基本上有两种类型的块:规则块和事实块(就像在 Prolog 中一样)。它们都可以相互连接。规则块需要两个“事实”类型的输入。但是,不可能将多个附加的事实块作为单个输入。因此,每当附加事实块作为规则块的输入时,我必须将“setNextStatement”设置为 false。

这就是我在事实块中尝试做的事情:

当然还有规则块:

这实际上有效,但是当我将事实与规则的输入部分分开时,我总是会收到以下错误:

有人有什么想法吗?

0 投票
0 回答
47 浏览

blockly - 对类类型的块状支持

我在我的应用程序中使用 blockly 来实现临时编程,并且我需要创建复杂类型并在创建它们时分配给变量。

我已经看到了这个块状的拉取请求,但是这个功能还不可用

不是我能够为字符串类型创建变量并且不能为复杂类型创建对象

0 投票
0 回答
203 浏览

javascript - 在 Angular 项目中实现 Google-Blockly 的块工厂

我想在我的 Angular 项目中实现块工厂来创建可以在我的工作空间中使用的块。块工厂演示和 github 存储库的链接如下

https://blockly-demo.appspot.com/static/demos/blockfactory/index.html

https://github.com/google/blockly-devtools

我没有找到任何实现此功能的参考。

0 投票
1 回答
847 浏览

blockly - 块状的自定义编程语言?

如何将默认块语言从 javascript 更改为批处理?

我想制作一个制作批处理代码 .bat 文件的块创建器,默认选项是 javascript、php、lua 等。我怎样才能制作一个自定义的?

0 投票
1 回答
290 浏览

cypress - 赛普拉斯测试运行程序不呈现 Blockly 类别

我有一个使用 Blockly 的 React Web 应用程序,我目前正在尝试编写使用 Cypress 框架的自动化测试。

赛普拉斯在基本的登录过程中运行良好,但是一旦 Blockly 应该加载就会开始表现不一致。

大约有一半的时间,应用程序的整个 Blockly 部分根本不会出现在 Cypress 视口中。有时会出现,有时不会,而且我不确定是什么原因导致它或如何真正重现它,它似乎是随机的。

是正确加载时的外观

是无法正确加载时的外观

起初,我认为它不起作用的原因是因为 Blockly 的资源没有加载,并且 Cypress 试图访问不存在的资源。

为了解决这个问题,我添加了一个延迟,使用cy.wait(). 我尝试了从 1s 到 10s 的任何时间,但延迟似乎没有影响任何事情,无论延迟多长时间,如果应用程序的 Blockly 部分正确加载,它似乎都没有影响。

以下是使用的赛普拉斯测试文件部分的代码:

它运行良好,直到运行测试的“打开创建的项目”部分之后,如果应用程序的 Blockly 部分出现,则它是一个成功或失败。有关可能发生的情况,请参阅上面的图像。

0 投票
0 回答
756 浏览

blockly - 块恢复块

我正在尝试通过单击按钮恢复或生成带有 XML 代码的块并将其设置到我的工作场所。但它不能正常工作,不知何故它什么也没显示。帮助将不胜感激。 我尝试了以下链接:

1. https://samadhpoornima.wordpress.com/2016/06/21/play-around-with-blockly-save-and-restore-the-workspace/

2. https://embed.plnkr.co/XIeR0L/

3. https://developers.google.com/blockly/guides/create-custom-blocks/blockly-developer-tools

4. https://developers.google.com/blockly/guides/get-started/web

我要恢复的代码:

我也尝试过以下方式:

块恢复功能:

XML 的单个响应是:

0 投票
1 回答
105 浏览

javascript - 无法获取对象的基本类型

我正在尝试获取对象的基本类型但失败了。Chrome 的控制台似乎可以做到,但我做不到。

这是控制台给我的:

在此处输入图像描述

我试图以Blockly.FieldDropdown某种方式得到。

Chrome 控制台如何能够找到它,但我不能?

该对象由 Google Blockly 返回:

或者作为一个独立的工作示例:

我试过找到一个返回类型的 Blockly 方法,但我还没有看到。

0 投票
0 回答
299 浏览

javascript - Blockly.Xml.textToDom 期望一个文档

我一直在尝试从 localStorage 中恢复所有使用过的块。我正在遍历所有本地保存的块,但出现以下错误。如果我能得到一些帮助,那就太好了。

错误:

恢复所有块的代码:

保存组合的代码:

0 投票
1 回答
61 浏览

javascript - 在javascript中将复杂代码组合为字符串

我正在Blockly用他们自己的 JavaScript 代码设计自定义块,当我试图以字符串形式输出的代码是单行时,这并不复杂,但是当我试图将代码关联到我的自定义块时,通过变量的串联,单引号,双引号它开始变得混乱并产生难以解决的语法错误代码。

这是一个简单块的代码,我现在这样做:

这是我用来optionsselect输入中启用所有功能的块。

适用于简单代码。但我想做的是逐字编写 JS 代码,然后将其转换为字符串。

这样的事情是否可能:

是否有任何 JS 技巧可以让我做到这一点?

0 投票
1 回答
214 浏览

javascript - 重新编译 build.py 文件时缺少 goog.date 提供程序 - google blockly

我们在 blockly.js 文件中添加了 field_date 并尝试重新编译 build.py 文件,但是在运行时,它会抛出缺少提供程序 goog.date 的错误。我们如何解决这个问题,我们正在使用最新的 blockly 版本。