【问题标题】:Blockly: type check of child blocks during code generationBlockly:代码生成期间对子块的类型检查
【发布时间】:2020-11-07 23:56:30
【问题描述】:

我正在尝试从可以具有任何 JavaScript 输入类型的块生成代码。但要做到这一点,我需要知道这些块在生成期间是什么类型。

大多数块内部已经有一个用于类型检查的类型

"output": ["Integer","Number"],

this.setOutput(true, 'String');

但我找不到访问“输出”字段的函数。

理想情况下,我想像这样访问生成器函数中的类型:

var return_type = block.getChildren()[0].functionToAccessOutputWith;

有“.type”字段,但该字段给出了块类型的名称,而不是输出定义的返回值。

这似乎是一个很常见的问题,但我在网上找不到任何东西。

【问题讨论】:

    标签: javascript google-blockly


    【解决方案1】:

    只需按照Block.setOutput()的函数调用跟踪源代码即可。这并不难。最终你会到达Blockly.Connection 中的一行,上面写着this.check_ = check;

    所以你要找的基本上是block.outputConnection.check_。但这不是一个函数,_ 表示它应该是私有属性。为方便起见,我会在 Block 中编写一个 getter 函数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-31
      • 1970-01-01
      • 1970-01-01
      • 2011-11-14
      • 1970-01-01
      • 1970-01-01
      • 2017-11-18
      • 1970-01-01
      相关资源
      最近更新 更多