3

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

其中一部分需要文件选择器,但是,我看不到 Blockly 有一个。可以?

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

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

4

2 回答 2

3

据我所知,我认为您无法从中获取文件选择器,Blockly但也许这篇文章对您有用,其中有人custom Block为此目的创建了一个文件选择器。

此外,我找不到仅包含所有标准块名称的列表,但我看到您可以看到 Google 提供给您的所有标准块playgroundBlockly如果您想查看所有这些的代码,您可以在Blockly GitHub上查看。

我想如果Blockly没有文件选择器,它也将无法访问,但也许您可以为此目的Windows File Selector创建一个(我不知道您使用的是哪种编程语言)。这个链接可以帮助。custom BlockJavascriptJavascript Windows File Selector

我希望它对你有用!

于 2016-04-26T14:23:10.767 回答
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 标识实际包含块。

于 2017-12-11T10:38:10.770 回答