问题标签 [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 回答
1022 浏览

blockly - 块状 while 循环参数

我用机器人创建了一个小迷宫,并使用 Blockly 生成代码来尝试解决它。我可以使用 Blockly 块的 Javascript 命令移动机器人。到目前为止,一切都很好。我目前对 if 语句和 while 循环的争论感到头疼。主要是,我尝试了两件事:

块状迷宫

  1. 创建一个变量“not_goal_reached”,它表示机器人是否已到达目标位置(交叉)。代码:

但是,在 If 或 While 语句中使用此块时。我总是收到一个 Javascript 错误,无法帮助我找到解决方案:

我使用 Acorn js 解释器:

问题:我无法解决的javascript错误:(

  1. 我创建了自己的不需要输入的 While 块。这个 While 块在内部检查机器人是否已经达到目标,然后处理 DO 语句:

这可行,但是,在这里我有一个问题,即我的内部函数“not_done”仅被评估一次(在代码生成时)到 while(true)(因为第一次机器人当然不在目标位置)。此块正确应用 DO 代码,但不会停止(因为 while (true))。如果我在“not_done()”周围添加引号,则该函数显然会被评估一次,但随后我会收到与上面相同的 Javascript 错误(无法读取未定义的属性“toBoolean”)

我在这里错过了什么吗?非常感谢您的时间!

问候

ķ

0 投票
1 回答
55 浏览

blockly - 用于翻译罗马数字的块代码

我需要用块状代码做一个程序,将数字从阿拉伯数字翻译成罗马数字,最多 4000,但我不知道我做错了什么。

我只能使用函数、变量、数学和逻辑(附加的 html 代码)。谁能帮我解决这个问题,我将不胜感激;))

https://blockly-demo.appspot.com/static/demos/code/index.html#zq536j

0 投票
4 回答
4464 浏览

javascript - 如何从块中的代码生成块?

我有一个生成一些输出代码的块状应用程序。现在,是否可以编写一些函数来获取我的输出代码并将相应的块放在工作区中。例如,在此页面上,https://developers.google.com/blockly/

连接块以生成 javascript 代码,但是有什么办法,我会给 javascript 代码,块会出现在工作区上。

0 投票
1 回答
1884 浏览

blockly - 按 ID 获取 Google Blockly Block?

我想查询 DOM 以按 ID 获取块。目前我必须按类名查找所有元素,并手动提取正确的索引,这是不可持续的。

如何给一个块一个唯一的ID?

谢谢

0 投票
1 回答
340 浏览

javascript - 如何以编程方式注入和读取 Blockly 变量?

我发现Blockly是一个有用的工具,它允许高级用户“无需编码”某些业务逻辑规则,同时还可以对他们的访问进行沙箱化。经典的视觉规则引擎。

我已经看到 Blockly 显然支持我假设存储在Blockly内部的某个集合中的变量,即它不会创建全局 JS 变量?

在 Blockly 之外的常规 JS 代码中,我如何设置(或创建)一个 Blockly 变量以及如何读取它?我正在设想一种情况,我们的代码有一个“更新规则引擎”块,它将键值注入 Blockly 变量,以便 Blockly 数据和我们的内部状态保持分离。

这似乎很明显,但我最初对如何从代码中与 Blockly 进行交互的搜索并没有取得成果。

0 投票
1 回答
243 浏览

javascript - 是否可以动态重新加载 JS 脚本文件?

我们正在考虑使用 Blockly 让高级用户能够以非编码、沙盒的方式设计业务规则。

当他们编辑图表以重新生成新的 JS 代码时,我想将其重新加载到浏览器中。一方面是,如果代码保存为外部 JS 脚本,如何在不刷新整个页面的情况下在浏览器中重新加载它?

0 投票
1 回答
647 浏览

javascript - 块状 - 未定义的属性

我正在尝试在其中创建一个自定义块,blockly但似乎无法使其正常工作。我从块工厂生成了代码,这就是我得到的:

然后我将它导入到我的 html 中:

并将其加载到浏览器。我立即收到此错误:

无法设置未定义的属性“say_input”

错误在于:

我的自定义块出现在工作场所,所以我确信链接正常。

我检查了这个视频,似乎我没有做错任何事。

我该如何解决这个问题?

0 投票
1 回答
121 浏览

javascript - Error blockly on compilation

I'm trying to compile blockly, I compile the file blockly_uncompressed.js well but the others compressed do not compile them. I do not know where the error may be. This is a development that was left two years ago, and I have retaken it.

The error I get is the following:

I have never played blockly and I do not know where this can come from

0 投票
1 回答
313 浏览

vue.js - 使用 Vue.js 时 Blockly 可以 console.log 但无法与工作区交互

我在访问 Vue 应用程序中的 Blockly 组件生成的 javascript 代码时遇到问题。我可以通过多种方式 console.log 工作区,但是在尝试生成 javascript 代码时,工作区是未定义的。否则,Blockly 工作正常。

都打印一个“Blockly.WorkspaceSvg {…}”//对象

总是返回“...;” 和“没有在 workspaceToCode 调用中指定工作区。猜测。”

我尝试在打开脚本标记和导出默认值之间设置一个工作区变量,这也允许 console.log(workspace) 但在 workspaceToCode(workspace); 上失败;

如果我删除 Vue,它会起作用。我需要围绕我的 Vue 实例构建 Blockly 吗?

0 投票
0 回答
47 浏览

position - 仅在最新的 Firefox 中无法获取元素的边界框

尝试在 Blockly 中检索字段的绝对位置时,最新版本的 Firefox 中似乎存在错误。我正在构建一个有点像文本输入字段的自定义字段。我需要获取窗口中字段的绝对位置,可以通过调用

element.getAbsoluteXY_()

这在 Safari、chrome 甚至 IE 以及旧版本的 Firefox 上运行良好。但在最新的 Firefox 中,它似乎坏了(除非我犯了一个不小的错误)。

上下文:我在一个字段上叠加了一个文本编辑器,效果很好,给人的印象是一个块包含一个编辑器。

有人介入这个问题(错误?)

达米尔