虚拟机 API
VM(虚拟机)是运行 Scratch 项目的核心引擎。对于扩展开发者,VM 提供对项目执行、角色管理、积木解释和运行时事件的访问。此 API 主要通过 Scratch.vm 供非沙盒化扩展使用。
概述
VM 管理:
- 项目执行和控制
- 角色和目标管理
- 积木执行和编译
- 运行时事件和监控
- 扩展集成
- 资源和存储管理
访问 VM
// 仅非沙盒化扩展
if (!Scratch.extensions.unsandboxed) {
throw new Error('VM API 需要非沙盒化扩展');
}
const vm = Scratch.vm;
const runtime = vm.runtime;
项目控制
基本执行
// 启动项目(绿旗)
vm.greenFlag();
// 停止所有脚本
vm.stopAll();
// 手动执行单步(用于调试)
vm.runtime._step();
// 检查项目是否正在运行
const isRunning = vm.runtime.threads.length > 0;