代码拉取完成,页面将自动刷新
npm install scratch-vm
var VirtualMachine = require('scratch-vm');
var vm = new VirtualMachine();
// Block events
workspace.addChangeListener(function(e) {
// Handle "tapping" a block
if (e instanceof Blockly.Events.Ui && e.element === 'click') {
var stackBlock = workspace.getBlockById(e.blockId).getRootBlock().id;
vm.runtime.toggleStack(stackBlock);
// Otherwise, pass along to the block listener
} else {
vm.blockListener(e);
}
});
// Run threads
vm.runtime.start();
make build
<script src="/path/to/vm.js"></script>
<script>
var vm = new window.VirtualMachine();
// do things
</script>
The Virtual Machine constructs and maintains the state of an Abstract Syntax Tree (AST) by listening to events emitted by the scratch-blocks workspace via the blockListener
. At any time, the current state of the AST can be viewed by inspecting the vm.runtime.blocks
object.
{
"id": "^1r~63Gdl7;Dh?I*OP3_",
"opcode": "wedo_motorclockwise",
"next": null,
"fields": {
"DURATION": {
"name": "DURATION",
"value": null,
"blocks": {
"1?P=eV(OiDY3vMk!24Ip": {
"id": "1?P=eV(OiDY3vMk!24Ip",
"opcode": "math_number",
"next": null,
"fields": {
"NUM": {
"name": "NUM",
"value": "10",
"blocks": null
}
}
}
}
},
"SUBSTACK": {
"name": "SUBSTACK",
"value": "@1ln(HsUO4!]*2*%BrE|",
"blocks": null
}
}
}
make test
make coverage
We provide Scratch free of charge, and want to keep it that way! Please consider making a donation to support our continued engineering, community, and resource development efforts. Donations of any size are appreciated. Thank you!
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。