谷歌的 Blockly 似乎是一个有趣的工具,可以制作教育软件和游戏,帮助孩子们更好地学习编程。
虽然谷歌有一个同样适用于开发者的文档,但是它很短而且帮助不大(对于新手开发者),而且学习相同的教程也很少。
所以我的问题是,在 Blockly 内部的代码生成器部分中,您可以单击 python/javascript 选项卡以查看您放置的任何块的代码,但如何获取该代码。我的意思是如何执行该代码,例如通过 wifi 发送它使用 websockets 什么的。
任何人都可以帮助我更好地理解这一点!
谷歌的 Blockly 似乎是一个有趣的工具,可以制作教育软件和游戏,帮助孩子们更好地学习编程。
虽然谷歌有一个同样适用于开发者的文档,但是它很短而且帮助不大(对于新手开发者),而且学习相同的教程也很少。
所以我的问题是,在 Blockly 内部的代码生成器部分中,您可以单击 python/javascript 选项卡以查看您放置的任何块的代码,但如何获取该代码。我的意思是如何执行该代码,例如通过 wifi 发送它使用 websockets 什么的。
任何人都可以帮助我更好地理解这一点!
我不是 Blockly 的专家,但也许这会有用。
为了更直接地回答您的问题,您放置在工作区中的块背后有代码,生成器(JavaScrip、PHP ...)使用这些代码来创建您想要的输出代码。通过在 Blockly div 标签之外添加一个按钮来调用生成器例程。有很多方法可以做到这一点,但为了简单起见,假设您有以下内容:
<div id="blocklyDiv">
...后跟一个按钮
<button onclick="run()"> RunMe </button>
然后在脚本中,您需要有一个响应按钮 onclick 事件的函数。
<scrip>
var run = function(){
Blockly.JavaScript.addReservedWords('code');
var code = Blockly.JavaScript.workspaceToCode(workspace);
// now what do you do want to do with code...?
alert(code);
}
</script>
Blockly 文档充其量是非常薄的......但他们确实建议在 try/catch 代码块中测试生成的代码。这将让您知道您在 Blockly 编辑器中定义的块是否生成了有效或错误的代码。因此,在您获得如上所示的代码后,请尝试使用以下代码代替上面的警报(代码)。
try {
eval(code);
// passed the test, now what...
alert(code);
} catch (e) {
// failed so show the error
alert(e);
}
如果 JavaScript eval() 命令没有产生错误,则将执行下一行代码。如果在构建块的方式中发现错误,则会触发错误事件并执行 catch 语句(而不是 eval 命令之后的警报)。然后参数“e”将与 alert(e) 语句一起显示。从那里你将不得不调试你的块并重试。
另一件事,我在上面的示例中使用了 JavaScript 生成器。不确定其他语言如何测试他们的代码,但我认为有类似的方法可以调用 try/catch 环境。