我希望使用 Blockly 来允许非技术用户指定测试脚本。
其中一部分需要文件选择器,但是,我看不到 Blockly 有一个。可以?
实际上,我找不到标准块的完整列表。有人有网址吗?
如果没有标准的 Blockly 文件选择器,(如何)我可以访问 Windows 文件选择器吗?(一般来说,我如何执行 DOS 命令?)
我希望使用 Blockly 来允许非技术用户指定测试脚本。
其中一部分需要文件选择器,但是,我看不到 Blockly 有一个。可以?
实际上,我找不到标准块的完整列表。有人有网址吗?
如果没有标准的 Blockly 文件选择器,(如何)我可以访问 Windows 文件选择器吗?(一般来说,我如何执行 DOS 命令?)
据我所知,我认为您无法从中获取文件选择器,Blockly
但也许这篇文章对您有用,其中有人custom Block
为此目的创建了一个文件选择器。
此外,我找不到仅包含所有标准块名称的列表,但我看到您可以看到 Google 提供给您的所有标准块playground
。Blockly
如果您想查看所有这些的代码,您可以在Blockly GitHub上查看。
我想如果Blockly
没有文件选择器,它也将无法访问,但也许您可以为此目的Windows File Selector
创建一个(我不知道您使用的是哪种编程语言)。这个链接可以帮助。custom Block
Javascript
Javascript Windows File Selector
我希望它对你有用!
您可以在块输入上覆盖 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 标识实际包含块。