【发布时间】:2017-10-15 23:11:50
【问题描述】:
我正在尝试创建一个平台,让学生可以使用 blockly 进行面对面的代码挑战。我在想象这样的事情:
文档中提到了block factory 的“多个工作区”,但我觉得我可能在这里重新发明轮子,所以在我开始之前,这样的东西是否已经存在?理想情况下,连接到应用引擎,这样学生就可以从任何其他学生那里获取代码并进行测试,看看他们的代码比较如何?
【问题讨论】:
标签: blockly
我正在尝试创建一个平台,让学生可以使用 blockly 进行面对面的代码挑战。我在想象这样的事情:
文档中提到了block factory 的“多个工作区”,但我觉得我可能在这里重新发明轮子,所以在我开始之前,这样的东西是否已经存在?理想情况下,连接到应用引擎,这样学生就可以从任何其他学生那里获取代码并进行测试,看看他们的代码比较如何?
【问题讨论】:
标签: blockly
是的,它存在!我们在开发者工具中使用它来提供编辑器和预览。要查看的两个演示是 Multi-Playground (src) 和 Mirrored Workspaces (src)。
您会注意到在多操场中,我们只是在每个 div 上调用 Blockly.inject(..):
function start() {
// ...
startBlocklyInstance('VertStartLTR', false, false, 'start', toolbox);
startBlocklyInstance('VertStartRTL', true, false, 'start', toolbox);
startBlocklyInstance('VertEndLTR', false, false, 'end', toolbox);
startBlocklyInstance('VertEndRTL', true, false, 'end', toolbox);
startBlocklyInstance('HorizontalStartLTR', false, true, 'start', toolbox);
startBlocklyInstance('HorizontalStartRTL', true, true, 'start', toolbox);
startBlocklyInstance('HorizontalEndLTR', false, true, 'end', toolbox);
startBlocklyInstance('HorizontalEndRTL', true, true, 'end', toolbox);
}
function startBlocklyInstance(suffix, rtl, horizontalLayout, position,
toolbox) {
options.rtl = rtl;
options.toolbox = toolbox;
options.horizontalLayout = horizontalLayout;
options.toolboxPosition = position;
Blockly.inject('blocklyDiv' + suffix, options);
}
【讨论】: