问题标签 [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.
javascript - 块替换精灵路径
我正在使用 blockly 来创建我的程序。我已经从这个 github 位置块下载,我正在尝试从这个位置替换块状图像路径:https://blockly-demo.appspot.com/static/media/sprites.png
到这个(相对)位置:sprites.png
。但我不知道该怎么做。
问题是:我可以在哪里设置这条路径?
这是我的页面代码(在 blockly 的根文件夹中):
抱歉英语不好。
blockly - 默认的块状块是什么?
文档显示了一些示例块的使用,但我找不到明确的列表。我找到了一个我想要的列表类型的要点,但它不是官方的。GitHub 存储库包含一组似乎实现默认值的 json文件。然后是blocks_compressed.js,但这肯定不意味着是可用的文档。有Wiki,但它并不完整。谢谢!
javascript - 清除 Blockly 工作区而不将项目移动到垃圾箱
我想使用代码来清除 Blockly 工作区,并在某些情况下用新的 Blockly XML 覆盖。然而,我面临的问题是Workspace.clear()
将当前项目移动到垃圾箱,这在尝试重置工作区或用块覆盖它时可能会很烦人(这意味着首先清除它,否则当前块将被覆盖)。我发现我可以用 清除垃圾桶workspace.trashcan.contents = []
,但这会导致盖子渲染出现一些意外行为,尽管盖子是空的,但盖子看起来有点半开着。
即使我能找到清除垃圾箱的方法,这仍然会导致清除其中所有以前的项目,而我所寻找的只是在不影响垃圾箱的情况下进行一次清除操作。我试过查看文档Workspace.Clear
,但他们似乎没有给出任何语义方式来做到这一点。我也试过用 循环Workspace.getTopBlocks()
,Events.Delete
但这也会导致将项目移动到垃圾桶。
我还尝试实施手动解决方案,类似于:
对于第一行,我也尝试过Object.assign([], workspace.trashcan.contents_)
and workspace.trashcan.contents_.slice()
,但在所有三种情况下(包括最上面的情况),最终结果都等同于简单地调用workspace.clear
. 我猜这与 getter-setter 操作contentsBeforeClearing
有关(因为如果您在清除后在控制台中测试变量的值已更改以删除块),但如何解决这个问题超出了我的范围.
如何在不操作(不仅仅是重置)垃圾桶内容的情况下清除工作区?
javascript - 将 input_value 块限制到另一个块
在我的 Blockly 项目中,我有两个 3 blocksrcm_a
和.rcm_b
rcm_c
如您所见rcm_c
,我试图将第二个输入限制为 block rcm_b
,这显然不起作用。相同的输入将不接受任何输入类型。这是rcm_b
的代码:
我尝试按照本指南的 Statement Stacks 部分(我知道我正在尝试输入检查输入而不是语句)来实现类型检查。我究竟做错了什么?
非常感谢您的帮助!
javascript - Blockly - 如何更改“Change Variable by...”块生成的 JavaScript 代码
我正在开发一个 Blockly 项目,其中我将块中的数据作为 JavaScript 代码传递。我想更改从块输出的一些代码,使其对初学者更加友好。
可以通过编辑“generators/javascript”文件夹中的代码来更改块中的输出 JS 代码,但是标题为“Change by”(下图)的变量块似乎在generators/javascript/variables.js
文件中没有生成器,但它仍然按原样生成代码,而不对文件进行任何更改variables.js
。
基本上,我希望能够编辑此“更改”块的代码输出,但是我目前找不到执行此操作的方法。任何帮助将不胜感激。
blockly - 块状文本中的自动完成
我刚刚开始进入块状。我已经看到您可以通过 js 弹出窗口向用户询问输入。有没有办法为用户提供更复杂的选择器,例如自动完成文本字段?目前,调用jquery并获取值应该足够了,例如
(这是一个例子,任何其他可用的 js 自动完成库都可以)
angular - 如何在 Angular 中实现这样的块状演示?
我已经在“blockly”中实现了这个演示,我也想在 Angular 中实现它。我一直在阅读官方文档,但没有找到太多关于此的内容,我也没有太多 Angular 经验。因此,如果您能帮助我,我将不胜感激。
下面是演示代码。
https://developers.google.com/blockly/guides/overview