问题标签 [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.
blockly - Blockly 有文件选择器吗?
我希望使用 Blockly 来允许非技术用户指定测试脚本。
其中一部分需要文件选择器,但是,我看不到 Blockly 有一个。可以?
实际上,我找不到标准块的完整列表。有人有网址吗?
如果没有标准的 Blockly 文件选择器,(如何)我可以访问 Windows 文件选择器吗?(一般来说,我如何执行 DOS 命令?)
javascript - 如何使用 JS 解释器突出显示 Blockly 错误?
实际上我的要求是突出显示在其特定 js 函数中有错误的块。
我们正在使用Blockly
. 假设我在 Blocky 中应用一个逻辑(函数),那么该块将解析为 js。
然后我需要逐步执行js,而执行时间。如果我的逻辑(函数)中发生任何错误,我必须在块中突出显示该错误。
是否可以获得错误的行号?
请看这个链接。
python - 如何从python中的线程执行的类中停止无限循环?
我有一些字符串格式的 python 代码(Blockly 的输出),用于实例化自定义类。然后它们在线程中并发执行。这是代码的一个简单示例:
对于函数“f1”,我的实现有效,因为执行的代码不是无限循环。
但是对于函数 'f2' 和 'f3' 不起作用('f3' 将在睡眠后结束)
在寻找答案时,我发现了这个问题,它可能适用于“睡眠”,但不适用于无限循环。
有没有办法结束任何类型的代码的执行?我不介意它是杀死线程还是捕获异常。
javascript - Blockly,检测连接/删除/拖动/释放块
我搜索了文档和官方论坛,但找不到答案。
在 Blockly 中,我想检测以下内容:
- 当一个块连接到另一个块时;
- 当一个块从工作空间中移除时;
- 当工作空间为空时;
- 当用户拖动块时;
- 当用户释放块时;
可能吗?我只发现了一个init
和一个onchange
事件。
javascript - 从用户提供的字符串生成自定义 Blockly 块,无需 eval
我正在使用 JavaScript 将字符串转换为 Google Blockly 块。
输入字符串类似于"Hello %s World"
- 其中%s
定义了字符串输入。我需要把它变成:
但是我不确定如何在不使用的情况下实现这一点eval()
,并且由于输入字符串来自用户,我知道使用eval()
不是一个好主意。
我目前的代码是:
但是我不太确定如何创建我需要的 Blockly 代码,而不是在字符串中构建 JavaScript 然后eval()
在最后使用。
有人可以帮我解决这个问题吗?
jquery - Dynamically load javascript with global var
My project requires to :
- set values to global variable
- then load external JavaScript which uses this global variable
then change variable and load again same javascript while the external javascript looks as (using Google Blockly):
/li>
and the global variable is block_name it seems that since i pass there variable it is only passed variable and not its value. So if I call the javascript twice and load it to some HTML, it seems that both blocks looks same.
probably the way I load the javascript is not important, I tried:
and also via AJAX and then load it to HTML between <script>
tag.
so the imported code then looks like:
while first block is with name = B and second also, while first should be A and second B. Fun part comes when you use the block with name A it works, so the system knows block with name A, but displays with name B.
It is also possible that while they are loaded asynchronously, the global variable is half filled with A and becomes B while the functions behind method .Blocks takes over and registers it as B...
But by now I want to make sure that there is no problem with passing global variable to imported javascript as I do... And am open to any suggestions since my creativity is pretty gone already with this case...
javascript - Blockly 上的“未捕获的类型错误:无法设置属性...”
我开始在 Blockly 上编码,但是当我尝试创建新块时遇到问题。我做的步骤:
- 下载
Blockly
应用程序代码。 - 我将所有文件放在一个名为
Blockly
. - 我在该文件夹中创建了一个新的 html 文件,以查看工具箱是否工作正常。
- 我用Block Factory创建了两个新块。
- 我尝试使用新
customBlocks.js
文件将这些新块添加到工具箱中。
当我尝试进行第四步时出现问题,因为我添加了两个新块,但它只显示在工具箱上我在 js 上的第一个,而不是第二个,块的顺序无关紧要,只有第二个永远不会正确显示。
这是我的html
文件:
这是我的customBlocks.js
文件:
我可以看到它在控制台上给了我以下错误Google Chrome
:
未捕获的类型错误:无法设置未定义的属性“move_right”
我被困在这里,我无法弄清楚问题是什么。任何帮助,将不胜感激。
PS:不要关注块的逻辑,因为我还没有完成它们,但我想在完成逻辑之前看到两个块都能正确显示。
提前致谢!
javascript - 如何使用 Javascript 制作 Blockly 块的实例?
我Blockly
在customBlocks.js
文件中完成了以下块:
div
根据您在其上设置的像素数量,将 a向右移动。您必须在math_number
块内放置一个块move_right
以放置要移动的像素数量。
我的html
文件中有一个workspace
注入的变量Blockly workspace
:
我想做的事
它是在块已显示在 Blockly 的工作区上时从 JavaScript 中检索此数量的像素,而不是之前。
我试过的
我直接尝试从我的兄弟(谷歌浏览器)的控制台访问该
/li>workspace
变量,并且可以获得“子块”但不是它们的值。如下:我还尝试将工作区转换为 dom,然后转换为文本:
在这里我可以看到“子块”的值,我的意思是
math_number
块,它存储在文本中,但我不知道如何获取它。
为什么我要实现这一目标?
因为我想要的是检查用户是否向右移动了 300 像素。如果是这样,那么我将显示一条消息,其中我将输入“你明白了!”。
我的问题
是否有可能制作我放在工作区上的那个 Block 的实例,然后使用该实例访问它的像素值?
编辑:
我也可以获得left
@Oriol所说的价值:
但我没有把它放在这里,因为它使用的属性Jquery
(这根本不重要,因为它也是一个不错的选择,但不是预期的那样)。Block
我的意图是在将它放在之后获取一个实例,Blockly workspace
以便以后随时使用它。
css - 是否有另一种方法来调整 Blockly 工作区的大小?
我正在尝试调整我的Blockly workspace
内部 div。我希望如果页面变小,div 和它的Blockly workspace
内部也会变小。
我知道它的文档Google
中提供了一种方法,但我认为它有点“脏”,你必须使用大量代码来调整它的大小。
查看Google Chrome
我看到的调试器,我可以将 a 设置max-height
为svg
对象,但我不知道height
在注入工作区时如何更改它:
无论如何,它根本不会解决我的问题(只是避免在调整页面大小之前工作区比 div 大)。
我也尝试改变我blocklyDiv
注入的地方Blockly workspace
,display: flex;
但它并没有改变任何东西。
有没有比Google's
示例更好的方法来调整大小Blockly workspace
?
提前致谢!
javascript - 将 JavaScript 隐式包含集成到 AngularJS 部分视图中
我正在尝试创建一个使用Google Blockly的 AngularJS 应用程序,在我的应用程序中使用一些部分视图。
尝试在 Angular 中设置 Blockly 的 JS 依赖项,我注意到 Blockly 框架的核心 JS 库将动态依赖项(使用document.write(".....")
调用)添加到扮演其主视图角色的 HTML 文件中。
如果我想将 Blockly 编辑器主视图设置为部分视图,这是非常有问题的,因为这些 JavaScript 导入将被添加到部分视图中,而 Angular 将无法正确包含它们,因为它们将不在主index.html
文件中。
我的猜测是我应该以不同的方式处理这个问题,但我不确定如何——对 AngularJS 来说是新手。通过研究,我发现有一些 JS 模块加载管理的框架,例如RequireJS,但他们似乎没有这样的动态导入管理方式。对此有什么建议吗?先感谢您。