我想在 Blockly 中为工作区创建一个开发人员变量,但我找不到必要的函数/方法。
我不想在按钮上创建变量。即使工作区中没有块,也应包含该变量。
使用这两个函数,我可以获得已经创建的变量:
var variables = workspace.getAllVariables();
var dev_var = Blockly.Variables.allDeveloperVariables(workspace);
但是设置功能是什么?
我想在 Blockly 中为工作区创建一个开发人员变量,但我找不到必要的函数/方法。
我不想在按钮上创建变量。即使工作区中没有块,也应包含该变量。
使用这两个函数,我可以获得已经创建的变量:
var variables = workspace.getAllVariables();
var dev_var = Blockly.Variables.allDeveloperVariables(workspace);
但是设置功能是什么?
开发人员变量是用户永远不可见的变量,但会存在于生成的代码中。如果这就是你要找的东西:它没有 API,但这里有一些你可以做的事情。
yourGenerator.addReservedWords('var1,var2,...')
. 您可以在包装代码中初始化变量。init
生成器上的函数。另一方面,如果您想要的是一个始终显示在工具箱中的用户可见变量,而无需用户创建它,您应该调用yourWorkspace.createVariable('variable_name')
.
单元测试块都假设变量 unittestResults 存在并且可以写入。为了表明这一点,块定义包括函数 getDeveloperVars,它返回一个字符串数组。每个字符串都是一个变量名。在 gtihub 中关注这个问题
Blockly.Blocks['unittest_fail'] = {
// Always assert an error.
init: function() {
this.setColour(65);
this.setPreviousStatement(true);
this.setNextStatement(true);
this.appendDummyInput()
.appendField(new Blockly.FieldTextInput('test name'), 'MESSAGE')
.appendField('fail');
this.setTooltip('Records an error.');
},
getDeveloperVars: function() {
return ['unittestResults'];
}
};