ScratchJr/README.md
2020-11-13 20:28:50 +08:00

2.8 KiB
Raw Permalink Blame History

我们是一群Scratch爱好者感谢Scratch提供了非常棒的少儿编程工具。 ScratchJr是Scratch官方提供的面向5-7岁儿童学习Scratch的入门工具。相比较Scratch而言ScratchJr更加适合初学者。

官方开源地址ScratchJr官方提供了iPad和Android平板版本。

jfo8000提供了window 和 Mac版本安装后就可以体验ScratchJr。

我们的目标是把ScratchJr修改为网页版本在浏览器中就可以体验ScratchJr同时保持与官方版本的兼容。

网页版本当前修改计划:

  1. 修改画图板在部分浏览器上有偏差的Bug
  2. 实现微信分享等功能

与官方保持同步目前更新到官方2020-9-14版本这个版本的主要修改

  1. 统一iOS 和 Android与JS交互的接口具体的见tablet\OS.js
  2. 升级iOS底层不再使用iOS已经废弃的WebView使用新的WKWebView。
  3. 增加新的国际化语言

官方版本只考虑了iOS 和 Andorid对网页支持的并不好主要体现在以下几个方面

  1. 事件点击官方版本点击事件使用的是ontouchstart/ontouchmove/ontouchend网页版本在此基础上增加了onmousedown/onmousemove/onmouseup详细修改见 utils/lib.js
  2. 数据存储官方调用的是iOS 和 Andorid底层的APIiOS主要是sqlite数据库接口网页版本使用localForage实现数据存储功能。
  3. 录音/录制视频、声音播放功能官方调用的是iOS 和 Andorid底层的API网页版本使用recordrtc实现录制功能,使用soundmanager2实现声音播放功能详细说明见tablet\Web.js

tablet底层接口简要说明目前包括三个平台

  1. Adnroid.jsjs调用Android底层API
  2. iOS.jsjs调用iOS底层API
  3. WebOS.js:调用网页相关功能

在**OS.waitForInterface()**中获取平台相关信息,调用对应的平台。

使用

window.JrConfig对象

scratchJr的配置需要载入编辑器之前完成

window.JrConfig = {
    //点击保存到云端按钮
    onSaveCloud: function(contents, name){
        //contents: sjr项目文件
        //name: 作品名称
    }
}

window.ScratchJr对象

scratchjr对外暴露的接口

//获取作品文件
window.ScratchJr.getProjectSjr((contents, name)=>{
    //contents: sjr项目文件
    //name: 作品名称
});
//获取作品封面
window.ScratchJr.getProjectCover((cover)=>{
    //coverbase64封面
});

//从URL加载sjr项目文件
window.ScratchJr.loadProjectSjr(url);