javascript - 如何从 block 中的代码生成 block ?

标签 javascript blockly

我有一个生成一些输出代码的 block 状应用程序。现在,是否可以编写一些函数来获取我的输出代码并将相应的 block 放在工作区中。
例如,在此页面上,https://developers.google.com/blockly/

连接 block 以生成 javascript 代码,但是有什么办法,我会给 javascript 代码, block 会出现在工作区上。

最佳答案

您只能从 block 中创建 javascript,而不能从 javascript 中创建 block 。但是,您可以将 block 导出到 xml,然后将 xml 导入回 block 。因此,您始终可以将 block 以 xml 格式保存在任何您希望的位置,并将这些 block 从 xml 加载回您的 block 状工作区。

function saveBlocks() {
    var xmlDom = Blockly.Xml.workspaceToDom(Blockly.mainWorkspace);
    var xmlText = Blockly.Xml.domToPrettyText(xmlDom);
    // do whatever you want to this xml
}
function loadBlock(xml) { // xml is the same block xml you stored
    if (typeof xml != "string" || xml.length < 5) {
        return false;
    }
    try {
        var dom = Blockly.Xml.textToDom(xml);
        Blockly.mainWorkspace.clear();
        Blockly.Xml.domToWorkspace(Blockly.mainWorkspace, dom);
        return true;
    } catch (e) {
        return false;
    }
}

关于javascript - 如何从 block 中的代码生成 block ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47572536/

相关文章:

blockly - 在 blockly block 中读取用户输入的输入

javascript - 编译时出现 block 状错误

javascript - blocky - 未定义的属性

javascript - 如何双重查询两个 Mongoose 值?

javascript - 如何在 js 中为单个字符设置动画或在悬停时使用 jquery?

javascript - Express:将 req.body 对象中的数组分配给各个变量

javascript - 在 onkeyup 事件中更改值时不会触发 onchange 事件

javascript - ArticlesGrid Article.props 在哪里?或者如何引用 Prop ?

javascript - 如何调查为什么 setTimeout 函数在我的代码中不起作用?

c++ - C++ 项目中的 block 状编辑器