gpt4 book ai didi

javascript - block 状 : code variables

转载 作者:行者123 更新时间:2023-11-30 17:52:20 27 4
gpt4 key购买 nike

我刚刚发现了“blockly”,这正是我一直在寻找的将我的 webApp 提升到一个新水平的方法。我遇到的问题是我不太明白如何启动 python 或 js 代码变量。

这是我的 block :

Blockly.Language.myapp_ifdo = {
helpUrl: '',
init: function() {
this.setColour(210);
this.appendDummyInput()
.appendTitle("if")
.appendTitle(new Blockly.FieldDropdown([["Temperature", "Temperature"], ["Humidity", "Humidity"]]), "SENSOR")
.appendTitle(" ")
.appendTitle(new Blockly.FieldDropdown([["=", "="], ["≠", "≠"], ["<", "<"], ["≤", "≤"], [">", ">"], ["≥", "≥"]]), "OPERATOR")
.appendTitle(" ")
.appendTitle(new Blockly.FieldTextInput("0"), "SENSORVALUE");
this.appendStatementInput("DO")
.appendTitle("do");
this.setInputsInline(true);
this.setPreviousStatement(true);
this.setNextStatement(true);
this.setTooltip('');
}
};

效果图是:

enter image description here

下拉列表内容:

enter image description here

我正在尝试做的事情:

如果选择“温度”,那么我想在生成代码的开头初始化变量:

temperature = None
if temperature <= '30':
pass

如果选择“湿度”也是一样:

humidity = None
if humidity >= '60':
pass

在我的“template.soy”文件中我有这个:

<block type="myapp_ifdo"></block>

希望我已经足够清楚了...感谢您的帮助!

问候,

最佳答案

如果您使用内置的 Blockly 变量和其他结构,内置的 Python 生成器将为您处理。

代码演示使用函数Blockly.Generator.workspaceToCode从 block 中生成代码。一旦处理完所有 block ,它就会调用生成器的 finish 函数来预先添加变量声明。

您可以在 python.js 中亲自查看完成 :

/**
* Prepend the generated code with the variable definitions.
* @param {string} code Generated code.
* @return {string} Completed code.
*/
Blockly.Python.finish = function(code) {
...

如果您不能使用 Blockly 的内置结构,则需要编写自己的生成器代码。您可以使用 Blockly 中的这段代码作为起点,尽管这会很棘手,因为您需要维护自己的变量声明列表。

关于javascript - block 状 : code variables,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18727093/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com