Blockly有文件选择器吗?

时间:2016-02-05 10:49:55

标签: blockly

我希望使用Blockly允许非技术用户指定测试脚本。

它的一部分将需要一个文件选择器,但是,我无法看到Blockly有一个。是吗?

实际上,我找不到标准块的完整列表。有人有网址吗?

如果没有标准的Blockly文件选择器,我该如何访问Windows文件选择器? (以及一般来说,我可以如何执行DOS命令?)

2 个答案:

答案 0 :(得分:2)

据我所知,我认为您无法从Blockly获取文件选择器,但是这个post对您来说很有用,其中一个人为此目的创建custom Block

另外,我找不到只包含所有标准块名称的列表,但我在Blockly的{​​{3}}上看到了您可以看到Google为您提供的所有标准块。如果您想查看所有代码,可以在playground上看到。

我认为如果Blockly没有文件选择器,它也无法访问Windows File Selector,但也许您可以通过{{1}为此目的创建custom Block (我不知道你使用的是什么编程语言)。 Blockly GitHub链接有助于Javascript

我希望它对你有用!

答案 1 :(得分:1)

您可以在块输入上覆盖showEditor_函数 - 这对FieldTextInput非常有效。请参阅https://youtu.be/eYHo0VeSLCI,了解截获的'单击打开一个jquery移动对话框,然后填写文本值。然后,javascript生成器将检索文本值,以便在运行时加载所选文件。

我已经粘贴了一些简化代码:

显示标准文字输入

let fileInput = new Blockly.FieldTextInput('** CHOOSE A FILE **')

然后你可以附加一个显示你的文件选择器的点击处理程序 - 所以标准的浏览器文件选择器可以...

fileInput.showEditor_=(()=>alert("Intercepted"))

您需要使用文件选择器代码替换警报。您的代码还需要设置文本输入的值 - 如下所示:

let block = Blockly.mainWorkspace.getBlockById(block_id)
block.setFieldValue(filename, widget_id)

其中widget_id标识文本输入,block_id标识实际包含的块。