首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Google Blockly更新输入类型

Google Blockly更新输入类型
EN

Stack Overflow用户
提问于 2016-08-20 07:01:05
回答 1查看 1.5K关注 0票数 1

我目前正在尝试在我的一个项目中使用Google Blockly (一个可视化代码编辑器)。下面的例子显示了一个“块”,有几个输入。我正在尝试做的是,让一个块根据下拉字段选择将另一个输入添加到它自己。这是可行的,但是输入总是换到一个新行。我可以将其设置为内联,但我不喜欢它的外观。你知道如何做到这一点吗?

提前谢谢你,

克里斯塔

代码:

代码语言:javascript
复制
Blockly.Blocks['page_settings'] = {

  init: function() {
    var PROPERTIES =
        [["Nothing", "NONE"], ["Show Text Component", "SHOW_TEXT"], ["Show Item", "SHOW_ITEM"]];
    this.setColour(65);
    this.appendValueInput("TEXT")
        .setCheck("String")
        .appendField("Text");
    this.appendValueInput("FORMAT")
      .setCheck("mc_text_format")
      .appendField("Format");
    var dropdown = new Blockly.FieldDropdown(PROPERTIES, function(option) {
      this.sourceBlock_.updateShape_(option);
    });
    this.appendDummyInput()
        .appendField("Hover Event")
        .appendField(dropdown, 'HOVER_EVENT_TYPE');
    this.setInputsInline(false);
    this.setOutput(true, 'Boolean');
    this.setTooltip('Blockly.Msg.MATH_IS_TOOLTIP');
  },

  mutationToDom: function() {
    var container = document.createElement('mutation');
    var itemInput = this.getFieldValue('HOVER_EVENT_TYPE');
    container.setAttribute('hover_type', itemInput);
    return container;
  },

  domToMutation: function(xmlElement) {
    var itemInput = xmlElement.getAttribute('hover_type');
    this.updateShape_(itemInput);
  },

  updateShape_: function(input_type) {
    // Add or remove a Value Input.
    var inputExists = this.getInput('HOVER_INPUT');
    if (input_type == 'SHOW_TEXT') {
      if (!inputExists) {
        this.appendValueInput('HOVER_INPUT')
            .setCheck('mc_text_component');
      }
    }else if(input_type == 'SHOW_ITEM') {
      if (!inputExists) {
        this.appendValueInput('HOVER_INPUT')
            .setCheck('mc_item');
      }
    }else if(inputExists) {
      this.removeInput('HOVER_INPUT');
    }
  }
};
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-11 01:24:03

在Blockly中,您可以将所有输入设置为内联或所有输入后跟换行符("external")。不支持只对某些输入进行内联。请参阅setInputsInline(..)方法(或JSON块定义中的inlineInputs )。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39048756

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档