问题标签 [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 投票
3 回答
320 浏览

javascript - 在函数中调用函数

我有一种情况,我从 Blockly 组件中生成代码。生成的代码将具有我要调用的函数。根据Blockly“生成和运行 JavaScript”文档,我应该使用eval().

当我在 MSDN 上查找时eval(),我得到了一个我应该“从不使用 eval”Function改用的部分。

以下是代码输出的一些示例代码:

我想onExecutecode变量中调用函数,但我不知道该怎么做?

实现我想要的结果的最佳方法是什么。

0 投票
1 回答
145 浏览

javascript - 如何在 Scratch/Blockly 中更改块的形状?

我正在尝试更改 Scratch 中块的形状和颜色。为此,我正在尝试修改暂存块的 GitHub 存储库(https://github.com/LLK/scratch-blocks)。

尽管我不这么认为,但我必须更改的存储库是 scratch-gui 的 GitHub 存储库(https://github.com/LLK/scratch-gui )的可能性很小。

有没有人这样做过并且可以告诉我要重写哪个文件/文件夹?

0 投票
1 回答
96 浏览

javascript - 检测何时停止拖动块

当用户停止拖动块时,我想触发一个功能。但它似乎只支持块创建/删除/移动和更改事件检测,有没有办法做到这一点?

0 投票
0 回答
133 浏览

javascript - Blockly Mutator 变量未更新

我正在尝试制作一个 Mutator 以允许使用一组用户指定的属性创建对象。我想要一些类似于函数的 mutator 的东西,您可以在其中添加另一个参数,它会更新参数名称。

目前,我的代码正在验证名称并自动生成新的属性名称,但是 mutator 块不会更新文本,这意味着它与我设置为的原始文本(在本例中为属性 0)卡住了。从此处拖动新块时,新块以非冲突方式正确标记。谁能帮我让 mutator UI 更新值?

这看起来像的一个例子是here。一个新的且正确标记的块已从 mutator 的冲突“property0”块中拖出。用户可以编辑此块,但如前所述,拖走新块时该值不会自动更新。

我的 mutator 块代码如下

0 投票
0 回答
87 浏览

javascript - 以下语句的块状征用代码生成

我怎样才能制作一个可以编译的块来包装它后面的所有块?

这是我要制作的块的示例:

在此处输入图像描述

我想编写创建输出的生成器:

我想到了两种可能的解决方案:

我的想法1

伪 C 块生成器应该做普通 C 块生成器所做的事情。

  1. 获取所有后续块的转译。
  2. 防止 Blockly 自动转换以下块本身。

我已经看过 1 使用block.nextConnection.targetBlock()and Blockly.JavaScript.blockToCode。这样循环不方便,第二点我也没想好怎么解决。

第二点是因为我不想要像这样的输出

我的想法2

为伪 C 块创建自定义样式。它确实有一个 input_statement 参数,但 input_statement 对用户是不可见的,而是附加到伪 C 块底部的任何块实际上都附加到该 input_statement

不幸的是,我不知道如何做到这一点。


请有人能指出我正确的方向吗?

0 投票
0 回答
105 浏览

blockly - 当我在 Blockly 中将任何 custom_block 作为 setcheck("position") 中的类型传递时,set Check 方法在语句输入中不起作用

在上面的这个块(轨迹)中,我只想连接其 statementInput 中的“位置”块,因为我还添加了 setCheck 方法。但尽管如此,每个块都在连接(那些具有 previousStatement = true 的块)。

我不能把签到位置的块放在前面的语句,因为位置块可以与其他块连接

0 投票
0 回答
56 浏览

flyout - 块状弹出滚动条

Blockly 的弹出窗口有两个问题。

  1. 当我关闭浮出控件时,浮出控件的滚动条不会被删除,它会停留并在拖动的元素上方出现一条线(半透明线)。
  2. 我在分屏(水平分割)中使用分屏(水平分割)和角分割库,但如果底部屏幕越过它,弹出滚动条将不起作用,并且我无法访问其他弹出选项,直到我展开分割屏幕。因此,滚动在带有分屏的弹出窗口中不起作用。
0 投票
1 回答
39 浏览

blockly - 如何使用blockly事件实现多人合作!

我已经阅读了 blockly 的文档,我知道我可以通过

这两个功能。所以我可以获得许多类型的块事件,但是我怎样才能使用这些事件来创建一个块。

所以情况是客户端A从服务器获取block事件,A需要使用这些事件来创建block。

那么如何做到这一点呢?有人知道吗?

0 投票
1 回答
78 浏览

blockly - 在 Blockly 中移除用户拖动的所有块

我正在为一个项目使用 Blockly 库。我想在按下重置按钮时删除用户从工具箱中拖动的所有块。

有人可以帮助如何做到这一点。我必须使用哪个功能?

0 投票
0 回答
43 浏览

javascript - 在 Web 应用程序上创建 Blockly 迷宫

我希望在网络应用程序上重新创建 (Google) Blockly Maze 界面。我查看了 Blockly 文档,他们有 Music-Maker 游戏的步骤。迷宫环境是否也有一个最小的例子?我在网上也找不到任何教程。