请选择 进入手机版 | 继续访问电脑版

[相关技巧] Scratch3.0 页面初始化同时加载sb3文件的操作代码

[复制链接]
查看44 | 回复6 | 2021-9-13 08:41:01 | 显示全部楼层 |阅读模式

scratch是一种非常合适的作育 本身 的编程爱好 的方式。通过拖拽的方式,可以实现一些游戏,小程序的开发 ,就像搭积木一样,下面给大家先容 Scratch3.0 页面初始化同时加载sb3文件的操作方法,一起看看吧!

目标 文件地址:src\containers\sb-file-uploader.jsx

修改 sb-file-uploader.jsx文件, class SBFileUploader中添加componentDidMount(),代码如下

  1. componentDidMount() {
  2. var _this = this;
  3. // 作品所在存放地址
  4. var sb3Path = null;
  5. /**
  6. * 必须使用 $(window).on("load",function(){});
  7. * 否则页面在未加载完的情况下,有些组件会来不及加载,影响二次文件保存
  8. */
  9. console.log("尚未初始加载Sb3文件");
  10. $(window).on("load",function(){
  11. console.log("即将初始加载Sb3文件");
  12. let reader = new FileReader();
  13. let request = new XMLHttpRequest();
  14. console.log("加载的资源路径", sb3Path);
  15. request.open('GET', sb3Path, true);
  16. request.responseType = "blob";
  17. request.onload = function() {
  18. if(request.status==404){
  19. alert("未找到sb3类型的资源文件");
  20. location.href='/scratch';
  21. }
  22. let blobs = request.response
  23. reader.readAsArrayBuffer(blobs);
  24. reader.onload = () => _this.props.vm.loadProject(reader.result).then(() => {
  25. analytics.event({
  26. category: 'project',
  27. action: 'Import Project File',
  28. nonInteraction: true
  29. });
  30. _this.props.onLoadingFinished(_this.props.loadingState);
  31. }).catch(error => {
  32. log.warn(error);
  33. });
  34. }
  35. request.send();
  36. });
  37. }
复制代码

目标 文件地址:src\components\menu-bar\menu-bar.jsx

修改 menu-bar.jsx文件, class MenuBar 中初始SBFileUploader,代码如下

  1. // 必须加载这个文件
  2. import SBFileUploader from '../../containers/sb-file-uploader.jsx';
  3. class MenuBar extends React.Component {
  4. render () {
  5. return (
  6. <Box
  7. className={classNames(
  8. this.props.className,
  9. styles.menuBar,
  10. {[styles.saveInProgress]: this.props.isUpdating}
  11. )}
  12. >
  13. <SBFileUploader onUpdateProjectTitle={PropTypes.func} /** 初始化加载文件到项目 **/>
  14. {(className, renderFileInput, loadProject) => (
  15. <button onClick={loadProject} className={classNames(styles.scratchHide)}></button>
  16. )}
  17. </SBFileUploader>
  18. </Box>
  19. );
  20. }
  21. }
  22. export default injectIntl(connect(
  23. mapStateToProps,
  24. mapDispatchToProps
  25. )(MenuBar));
复制代码

到此这篇关于Scratch3.0 页面初始化同时加载sb3文件的操作代码的文章就先容 到这了,更多相干 Scratch页面初始化内容请搜刮 脚本之家从前 的文章或继续欣赏 下面的相干 文章盼望 大家以后多多支持脚本之家!


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

avatar ty实话实说2017 | 2021-9-24 12:27:23 | 显示全部楼层
一口气看完了,我要下去回味回味了!
回复

使用道具 举报

avatar 小野妹子868 | 2021-9-29 20:41:15 | 显示全部楼层
楼上是GG还是MM啊?
回复

使用道具 举报

avatar 想不到918 | 2021-10-4 15:45:32 | 显示全部楼层
缺乏激情了!
回复

使用道具 举报

avatar 李焕发 | 2021-10-13 06:25:55 | 显示全部楼层
看了这么多帖子,第一次看到这么高质量内容!
回复

使用道具 举报

admin楼主,我告诉你一个你不知道的的秘密,有一个牛逼的网站,他卖的服务器是永久的,我们的网站用 服务器都是在这家买的,你可以去试试。访问地址:http://fwq.mxswl.com
回复

使用道具 举报

不是惊喜,是惊吓!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则