Scratch3.0 动画播放支持SB3.0文件单独运行

2024-08-26 08:38

本文主要是介绍Scratch3.0 动画播放支持SB3.0文件单独运行,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

git clone https://github.com/LLK/scratch-render.git
cd scratch-render
npm install # 使用cnpm可能会安装失败

git下载慢的,可以考虑一下:加速下载

http://tool.mkblog.cn/github/

其实Scratch开发团队已经实现了这个功能,只是我们要找到接口来调用。打开目录下的/test/integration/index.html可以打开这个播放器Demo网页。此时上传sb文件会发现只能显示代码初始状态的效果,这时需要添加一行代码,添加vm.greenflag()给js执行,就可以实现播放的效果了。
这个网页的代码如下:
 

<body><script src="../../node_modules/scratch-vm/dist/web/scratch-vm.js"></script><script src="../../node_modules/scratch-storage/dist/web/scratch-storage.js"></script><script src="../../node_modules/scratch-svg-renderer/dist/web/scratch-svg-renderer.js"></script><!-- note: this uses the BUILT version of scratch-render!  make sure to npm run build --><script src="../../dist/web/scratch-render.js"></script><canvas id="test" width="480" height="360" style="width: 480px"></canvas><input type="file" id="file" name="file"><script>// These variables are going to be available in the "window global" intentionally.// Allows you easy access to debug with `vm.greenFlag()` etc.window.devicePixelRatio = 1;var canvas = document.getElementById('test');var render = new ScratchRender(canvas);var vm = new VirtualMachine();var storage = new ScratchStorage();var mockMouse = data => vm.runtime.postIOData('mouse', {canvasWidth: canvas.width,canvasHeight: canvas.height,...data,});vm.attachStorage(storage);vm.attachRenderer(render);vm.attachV2SVGAdapter(new ScratchSVGRenderer.SVGRenderer());vm.attachV2BitmapAdapter(new ScratchSVGRenderer.BitmapAdapter());document.getElementById('file').addEventListener('click', e => {document.body.removeChild(document.getElementById('loaded'));});document.getElementById('file').addEventListener('change', e => {const reader = new FileReader();const thisFileInput = e.target;reader.onload = () => {vm.start();vm.loadProject(reader.result).then(() => {// we add a `#loaded` div to our document, the integration suite// waits for that element to show up to assume the vm is ready// to play!const div = document.createElement('div');div.id='loaded';document.body.appendChild(div);// ------------------------------ //vm.greenflag(); // 这里添加这条语句// ------------------------------ //});};reader.readAsArrayBuffer(thisFileInput.files[0]);});</script>
</body>

 

这篇关于Scratch3.0 动画播放支持SB3.0文件单独运行的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1108081

相关文章

用js控制视频播放进度基本示例代码

《用js控制视频播放进度基本示例代码》写前端的时候,很多的时候是需要支持要网页视频播放的功能,下面这篇文章主要给大家介绍了关于用js控制视频播放进度的相关资料,文中通过代码介绍的非常详细,需要的朋友可... 目录前言html部分:JavaScript部分:注意:总结前言在javascript中控制视频播放

SpringKafka消息发布之KafkaTemplate与事务支持功能

《SpringKafka消息发布之KafkaTemplate与事务支持功能》通过本文介绍的基本用法、序列化选项、事务支持、错误处理和性能优化技术,开发者可以构建高效可靠的Kafka消息发布系统,事务支... 目录引言一、KafkaTemplate基础二、消息序列化三、事务支持机制四、错误处理与重试五、性能优

Python+PyQt5实现多屏幕协同播放功能

《Python+PyQt5实现多屏幕协同播放功能》在现代会议展示、数字广告、展览展示等场景中,多屏幕协同播放已成为刚需,下面我们就来看看如何利用Python和PyQt5开发一套功能强大的跨屏播控系统吧... 目录一、项目概述:突破传统播放限制二、核心技术解析2.1 多屏管理机制2.2 播放引擎设计2.3 专

使用Python实现文本转语音(TTS)并播放音频

《使用Python实现文本转语音(TTS)并播放音频》在开发涉及语音交互或需要语音提示的应用时,文本转语音(TTS)技术是一个非常实用的工具,下面我们来看看如何使用gTTS和playsound库将文本... 目录什么是 gTTS 和 playsound安装依赖库实现步骤 1. 导入库2. 定义文本和语言 3

Java终止正在运行的线程的三种方法

《Java终止正在运行的线程的三种方法》停止一个线程意味着在任务处理完任务之前停掉正在做的操作,也就是放弃当前的操作,停止一个线程可以用Thread.stop()方法,但最好不要用它,本文给大家介绍了... 目录前言1. 停止不了的线程2. 判断线程是否停止状态3. 能停止的线程–异常法4. 在沉睡中停止5

一文教你解决Python不支持中文路径的问题

《一文教你解决Python不支持中文路径的问题》Python是一种广泛使用的高级编程语言,然而在处理包含中文字符的文件路径时,Python有时会表现出一些不友好的行为,下面小编就来为大家介绍一下具体的... 目录问题背景解决方案1. 设置正确的文件编码2. 使用pathlib模块3. 转换路径为Unicod

在VSCode中本地运行DeepSeek的流程步骤

《在VSCode中本地运行DeepSeek的流程步骤》本文详细介绍了如何在本地VSCode中安装和配置Ollama和CodeGPT,以使用DeepSeek进行AI编码辅助,无需依赖云服务,需要的朋友可... 目录步骤 1:在 VSCode 中安装 Ollama 和 CodeGPT安装Ollama下载Olla

解读docker运行时-itd参数是什么意思

《解读docker运行时-itd参数是什么意思》在Docker中,-itd参数组合用于在后台运行一个交互式容器,同时保持标准输入和分配伪终端,这种方式适合需要在后台运行容器并保持交互能力的场景... 目录docker运行时-itd参数是什么意思1. -i(或 --interactive)2. -t(或 --

pycharm远程连接服务器运行pytorch的过程详解

《pycharm远程连接服务器运行pytorch的过程详解》:本文主要介绍在Linux环境下使用Anaconda管理不同版本的Python环境,并通过PyCharm远程连接服务器来运行PyTorc... 目录linux部署pytorch背景介绍Anaconda安装Linux安装pytorch虚拟环境安装cu

定价129元!支持双频 Wi-Fi 5的华为AX1路由器发布

《定价129元!支持双频Wi-Fi5的华为AX1路由器发布》华为上周推出了其最新的入门级Wi-Fi5路由器——华为路由AX1,建议零售价129元,这款路由器配置如何?详细请看下文介... 华为 Wi-Fi 5 路由 AX1 已正式开售,新品支持双频 1200 兆、配有四个千兆网口、提供可视化智能诊断功能,建