婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Scratch3.0初始化加載七牛云上的sbs文件的方法

Scratch3.0初始化加載七牛云上的sbs文件的方法

熱門標簽:400電話申請到底哪家好 地圖標注項目幾個月 400電話辦理費用低 外呼系統怎么群發短信 谷歌地圖標注日期 鶴壁高頻外呼系統多少錢一個月 宿遷怎么辦理400電話 蘇州呼叫中心外呼系統哪家強 聯通外呼系統電腦app軟件

下面通過代碼介紹下Scratch3.0初始化加載七牛云上的sbs文件,代碼如下所示:

編寫組件

import PropTypes from 'prop-types';
import React from 'react';
import {connect} from 'react-redux';
import {injectIntl, intlShape} from 'react-intl';

import analytics from '../lib/analytics';
import log from '../lib/log';
import {LoadingStates, onLoadedProject, onProjectUploadStarted} from '../reducers/project-state';

import {openLoadingProject,closeLoadingProject} from '../reducers/modals';

/** 獲取作品的編號 **/
function getProjectId() {
	if(document.getElementById("projectId")){
		return $("#projectId").val();
	} else {
		alert("sb3-downloader-qiniu.jsx文件提示:頁面不存在id屬性為projectId的對象!");
		return null;
	}
}

/**
 * 從七牛云加載sb3文件
 */
class SB3DownloaderQiniu extends React.Component {
    constructor (props) {
        super(props);
    }
	
	componentDidMount() { 
		var _this = this;
		
		if(getProjectId()==null){
			return;
		}
	  
		// 作品所在存放地址
		var sb3Path = null;
		$.ajax({
			dataType:"json",
			async:false,
			url:"/project/checkProjectByProjectId",
			data: {id: getProjectId()},
			success:function(res){
				if(res.success==true){
					sb3Path = res.sb3Path;
				}
			}
		});
		
		/**
		 * 必須使用 $(window).on("load",function(){});
		 * 否則頁面在未加載完的情況下,有些組件會來不及加載,影響二次文件保存
		 */
		$(window).on("load",function(){
			let reader = new FileReader();
			let request = new XMLHttpRequest();
			request.open('GET', sb3Path, true);
			request.responseType = "blob";
			request.onload = function() {
				if(request.status==404){
					alert("未找到sb3類型的資源文件");
					location.href='/scratch';
				}
				let blobs = request.response
				reader.readAsArrayBuffer(blobs);
				reader.onload = () => _this.props.vm.loadProject(reader.result).then(() => {
					analytics.event({
						category: 'project',
						action: 'Import Project File',
						nonInteraction: true
					});
					_this.props.onLoadingFinished(_this.props.loadingState);
				}).catch(error => {
					log.warn(error);
				});
			}
			request.send();
		});
	    
	}
   
    render () {
        return this.props.children(this.props.className);
    }
}

SB3DownloaderQiniu.propTypes = {
    children: PropTypes.func,
    className: PropTypes.string,
    intl: intlShape.isRequired,
    loadingState: PropTypes.oneOf(LoadingStates),
    onLoadingFinished: PropTypes.func,
    vm: PropTypes.shape({
        loadProject: PropTypes.func
    })
};

SB3DownloaderQiniu.defaultProps = {
    className: ''
};

const mapStateToProps = state => ({
    loadingState: state.scratchGui.projectState.loadingState,
    vm: state.scratchGui.vm
});

const mapDispatchToProps = (dispatch, ownProps) => ({
    onLoadingFinished: loadingState => {
		console.dir("sb3文件加載完畢!");
        dispatch(onLoadedProject(loadingState, ownProps.canSave));
        dispatch(closeLoadingProject());
    }
});

// Allow incoming props to override redux-provided props. Used to mock in tests.
const mergeProps = (stateProps, dispatchProps, ownProps) => Object.assign(
    {}, stateProps, dispatchProps, ownProps
);

export default connect(
    mapStateToProps,
    mapDispatchToProps,
    mergeProps
)(injectIntl(SB3DownloaderQiniu));

使用組件

SB3DownloaderQiniu /** 初始化加載文件到項目 **/>
	{(className, loadProject) => (
		button onClick={loadProject} className={classNames(styles.scratchHide)}>/button>
	)}
/SB3DownloaderQiniu>

好了,下面看下如何自動加載scratch3.0的頁面上實現自動加載原有的作品

首先,我們在安裝scratch3。0后,瀏覽器默認打開的是編程的頁面。如下圖:

那么我們希望開發一個功能,就是打開的時候默認加入某一個SB3的開發文件

1.首先,我們需要有一個.SB3的開發文件,建議上傳到STATIC目錄下

2、找到scratch-gui-develop>src>container》gui.jsx文件

找到44行的componentDidMount函數

  新增以下代碼

const url="/static/123.sb3";
        fetch(url,{
            method: 'GET'
        })
        .then(response=>response.blob())
        .then(blob=>{
            const reader=new FileReader();
            reader.onload=()=>this.props.vm.loadProject(reader.result)
            .then(()=>{
                GoogleAnalytics.event({
                    category:'project',
                    action:'Import Project File',
                    nonInteraction:true
                })
            })
            reader.readAsArrayBuffer(blob)
        })
        .catch(error=>{
            alert(`遠程加載文件錯誤!${error}`)
        })

文件加載完畢

此外,我們例如希望開發像修改作業之類的,我們可以需要進行文件的傳遞

我們需要將上面的第一行

consturl="/static/123.sb3";

更改為

consturl=window.projecturl;

然后呢。在首頁,例如paly.html添加上以上代碼,或者自己用參數來傳遞

script>

window.projectUrl="https://steam.nosdn.127.net/885318eb-ad83-44c4-afe3-d3bea0a0d2ab.sb3";

/script>

到此這篇關于Scratch3.0初始化加載七牛云上的sbs文件的文章就介紹到這了,更多相關Scratch加載sbs文件內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • scratch3.0二次開發之用blocks生成python代碼
  • scratch-www 在Win10下的環境搭建詳細教程
  • Scratch3.0二次開發之windows環境下打包成exe的流程
  • scratch3.0二次開發之scratch-blocks的免編譯修改方法

標簽:雙鴨山 襄陽 丹東 鄂爾多斯 哈爾濱 遵義 錫林郭勒盟 莆田

巨人網絡通訊聲明:本文標題《Scratch3.0初始化加載七牛云上的sbs文件的方法》,本文關鍵詞  Scratch3.0,初始化,加載,七牛,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Scratch3.0初始化加載七牛云上的sbs文件的方法》相關的同類信息!
  • 本頁收集關于Scratch3.0初始化加載七牛云上的sbs文件的方法的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    麻豆91在线观看| 中文字幕av一区二区三区免费看| 午夜激情综合网| 国产精品免费丝袜| 日韩免费福利电影在线观看| 色狠狠色狠狠综合| 成人免费av网站| 国产一区二区三区蝌蚪| 免费在线欧美视频| 日韩精彩视频在线观看| 亚洲一级二级三级| 亚洲男女一区二区三区| 国产精品久久久久久亚洲伦| 国产色婷婷亚洲99精品小说| 久久日韩粉嫩一区二区三区| 精品99一区二区三区| 精品剧情在线观看| 久久亚洲精品小早川怜子| 欧美成人激情免费网| 777亚洲妇女| 欧美一卡二卡三卡四卡| 6080日韩午夜伦伦午夜伦| 欧美精品18+| 91精品国产日韩91久久久久久| 欧美伦理电影网| 91精品国产综合久久久久久久| 欧美日韩国产影片| 91精品国产综合久久久久久久久久| 欧美一区二区私人影院日本| 日韩一区二区中文字幕| 精品国产污污免费网站入口| 久久久综合精品| 国产精品你懂的在线| 亚洲人成网站色在线观看| 中文文精品字幕一区二区| 日本一区二区视频在线| 久久综合九色综合97婷婷女人| 精品福利二区三区| 日韩欧美在线一区二区三区| 中文字幕成人av| 日韩欧美在线网站| 国产日韩欧美精品电影三级在线| 国产99久久精品| 欧美日韩精品免费观看视频| 日本亚洲最大的色成网站www| 国产一区二区福利| 一区二区免费视频| 麻豆国产精品一区二区三区| 亚洲欧美日韩电影| 蜜臂av日日欢夜夜爽一区| 一区二区三区高清不卡| 国内精品免费**视频| 亚洲美女视频在线| 精品中文字幕一区二区小辣椒| 亚洲精品美国一| 国产制服丝袜一区| 日韩av网站在线观看| 成人爱爱电影网址| 国产在线视频一区二区| 在线观看区一区二| 成人激情免费电影网址| 884aa四虎影成人精品一区| 91香蕉视频黄| 久久美女高清视频| 日韩一级成人av| 亚洲愉拍自拍另类高清精品| 亚洲少妇30p| 国产乱一区二区| 激情综合网天天干| 色哟哟国产精品免费观看| 成人综合在线观看| 欧美欧美欧美欧美首页| 自拍偷拍国产精品| 日韩欧美成人午夜| 性欧美大战久久久久久久久| 亚洲精品视频免费观看| 成人性生交大片| 国产91精品露脸国语对白| 日韩欧美国产高清| 亚洲精品在线电影| 亚洲成人在线免费| 亚洲成人免费在线观看| 成人免费毛片aaaaa**| 成人av在线资源网站| 日韩精品最新网址| 在线这里只有精品| 国产精品丝袜在线| 亚洲国产精品二十页| 韩日欧美一区二区三区| 不卡欧美aaaaa| 亚洲国产精品自拍| 亚洲成人在线观看视频| 视频一区二区三区入口| 亚洲高清视频的网址| 亚洲日本乱码在线观看| 综合久久给合久久狠狠狠97色 | 久久精品这里都是精品| 色综合欧美在线视频区| 亚洲女女做受ⅹxx高潮| 精品免费国产二区三区| 国产一区二区主播在线| 亚洲成av人片一区二区梦乃| 在线电影一区二区三区| 亚洲精品日韩专区silk| 91美女片黄在线观看91美女| 国产精品中文欧美| 欧美激情中文不卡| 91麻豆精品国产91久久久资源速度 | 9i在线看片成人免费| 国产真实乱对白精彩久久| 久久久精品免费免费| 亚洲视频狠狠干| 在线免费观看日本欧美| 精品日韩在线一区| 国产乱妇无码大片在线观看| 欧美婷婷六月丁香综合色| 一区二区三区视频在线观看| 国产剧情在线观看一区二区| 九色porny丨国产精品| 国产精品短视频| 亚洲男同性视频| 七七婷婷婷婷精品国产| 蜜桃91丨九色丨蝌蚪91桃色| 欧美一区二区黄色| 欧美一级夜夜爽| 图片区小说区国产精品视频| 7777精品伊人久久久大香线蕉经典版下载| 中文无字幕一区二区三区| 成人高清伦理免费影院在线观看| 亚洲人成伊人成综合网小说| 亚洲一区二区三区国产| 国产福利电影一区二区三区| 国产精品中文字幕日韩精品| 樱花草国产18久久久久| 免费在线成人网| 最新久久zyz资源站| 国产精品高潮呻吟| 91精品国产综合久久精品| 3atv一区二区三区| 91浏览器打开| 欧美日韩一级视频| 成人app网站| 欧美日韩亚州综合| 丁香啪啪综合成人亚洲小说 | 国产大陆a不卡| 欧美男生操女生| 亚洲免费毛片网站| 国产a区久久久| 久久99精品久久久久久动态图 | 日韩国产成人精品| 久久99国内精品| 日韩av电影免费观看高清完整版在线观看| 国产乱码精品一区二区三区忘忧草 | 欧美日韩国产精品自在自线| 成人毛片在线观看| 国产视频一区二区在线| 欧美群妇大交群中文字幕| 亚洲国产毛片aaaaa无费看| 中文字幕永久在线不卡| 国产成人在线免费观看| 蜜臀精品久久久久久蜜臀 | 久久黄色级2电影| 国产日韩影视精品| 91精品国产入口| 国产亚洲欧洲997久久综合| 日韩一区二区影院| 亚洲国产视频在线| 一区二区三区丝袜| 欧美美女网站色| 在线观看亚洲专区| 日韩欧美一级在线播放| 欧美一区二区三区免费大片| 亚洲青青青在线视频| 国产网红主播福利一区二区| 日韩午夜电影在线观看| 精品一区二区日韩| 欧美一区二区免费视频| 欧美在线看片a免费观看| 中文字幕亚洲成人| 欧美一级在线视频| 日韩欧美国产综合在线一区二区三区| 激情小说亚洲一区| 久久福利视频一区二区| 国产精品无遮挡| 成人欧美一区二区三区1314| 在线观看精品一区| 在线不卡a资源高清| 日本伦理一区二区| 精品国产成人系列| 久久嫩草精品久久久精品| 成人黄色大片在线观看| 色婷婷av一区| www久久久久| 国产精品国产三级国产aⅴ无密码| 在线一区二区三区| 欧美一级高清片在线观看| 福利一区在线观看| 在线观看日产精品| 国产精品毛片大码女人| 亚洲在线免费播放|