欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

Scratch2.0搭建實現(xiàn)上傳作品到本地服務器、封面圖片等

這篇文章主要講解了“Scratch2.0搭建實現(xiàn)上傳作品到本地服務器、封面圖片等”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Scratch2.0搭建實現(xiàn)上傳作品到本地服務器、封面圖片等”吧!

網站建設哪家好,找創(chuàng)新互聯(lián)公司!專注于網頁設計、網站建設、微信開發(fā)、微信小程序開發(fā)、集團企業(yè)網站建設等服務項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了祁東免費建站歡迎大家使用!

針對古老的機器,可能無法使用scratch4.0 ,現(xiàn)將2.0 與 3.0 并存,解決可以讓舊機器可以正常體驗scratch編程

scratch3.0 獲取地址

https://github.com/LLK/scratch-flash.git

git 命令: git clone https://github.com/LLK/scratch-flash.git

前期準備

flex sdk 4.6 (自行下載安裝,配置好環(huán)境變量)

jdk 1.8 (自行下載安裝,配置好環(huán)境變量)

開發(fā)工具

建議使用 Flash Builder (請自行安裝),IDEA也搭建成功了,總會遇到一些莫名其秒的問題(后續(xù)會介紹使用及問題)

好處:導入項目不需要做其他額外的配置,導入就可以運行

1.打開 flash builder 

2.文件->導入 flash builder,導入后的項目如下圖

Scratch2.0搭建實現(xiàn)上傳作品到本地服務器、封面圖片等

3.在項目上右鍵->屬性,可參考如下配置.以下圖片均是來自本人的真實環(huán)境

Scratch2.0搭建實現(xiàn)上傳作品到本地服務器、封面圖片等

附加的編譯器參數(shù)

-locale zh_CN -swf-version=19 -default-size=1024,768 -define+=SCRATCH::allow3d,false -define+=SCRATCH::revision,'20191022'

Scratch2.0搭建實現(xiàn)上傳作品到本地服務器、封面圖片等

Scratch2.0搭建實現(xiàn)上傳作品到本地服務器、封面圖片等

4.運行->調式配置

Scratch2.0搭建實現(xiàn)上傳作品到本地服務器、封面圖片等

點擊 調試 按鈕 啟動 scratch3.0程序,不出意外的話就可以運行了.

Scratch2.0搭建實現(xiàn)上傳作品到本地服務器、封面圖片等

問題匯總

1.資源空白問題(官網說的是資源是有版權的,也就是不開源.可以下載單機版在安裝目錄media 找到所有資源)

1.1 scr下新建  internalapi/asset 、medialibraries、medialibrarythumbnails

1.2 將單機版 目錄中media/libs下的 幾個json文件放到 medialibraries 目錄中

1.3 將單機版 目錄中 media 中所有 圖片  音頻  json文件 放到其他的二個文件夾中(這里應該區(qū)分放,太多了不想找了)

1.4 修改src->util->service.as getOfficialExtensionURL 方法 ,約 104 行

// Returns a URL for downloading the JS for an official extension given input like 'myExtension.js'
		public function getOfficialExtensionURL(extensionName:String):String {
			var path:String;			
			if (Scratch.app.isOffline) {
				path = 'static/js/scratch_extensions/';
			}
			else if (Scratch.app.isExtensionDevMode) {
				path = 'scratch_extensions/';
			}
			else {
				// Skip the cdn when debugging to make iteration easier
				var extensionSite:String = Capabilities.isDebugger ? URLs.sitePrefix : URLs.siteCdnPrefix;
				path = extensionSite + URLs.staticFiles + 'js/scratch_extensions/';
			}			
			path += extensionName;			
			return path;
		}

getAsset 方法

public function getAsset(md5:String, whenDone:Function):URLLoader {
			//		if (BackpackPart.localAssets[md5] && BackpackPart.localAssets[md5].length > 0) {
			//			whenDone(BackpackPart.localAssets[md5]);
			//			return null;
			//		}
			var url:String = "";
			if (Scratch.app.isOffline) {
				url=URLs.internalAPI+'asset/' + md5 ;
			}
			else
			{
				url = URLs.assetCdnPrefix + URLs.internalAPI + 'asset/' + md5 + '/get/';
			}
			return serverGet(url, whenDone);
		}

getMediaLibrary 方法

	
		public function getMediaLibrary(libraryType:String, whenDone:Function):URLLoader {
			var url:String = "";
			if (Scratch.app.isOffline) {
				url='medialibraries/' + libraryType + 'Library.json';
			}
			else
			{
				url=getCDNStaticSiteURL() + 'medialibraries/' + libraryType + 'Library.json';
			}
			return serverGet(url, whenDone);
		}

setDefaultURLs 方法

// No default URLs
		protected function setDefaultURLs():void {
			/*URLs.sitePrefix = "https://scratch.mit.edu/";
			URLs.siteCdnPrefix = "https://cdn.scratch.mit.edu/";
			URLs.assetPrefix = "https://assets.scratch.mit.edu/";
			URLs.assetCdnPrefix = "https://cdn.assets.scratch.mit.edu/";
			URLs.projectPrefix = "https://projects.scratch.mit.edu/";
			URLs.projectCdnPrefix = "https://cdn.projects.scratch.mit.edu/";*/
			URLs.internalAPI = "internalapi/";
			URLs.siteAPI = "site-api/";
		}

行了.在打開看一下就有了,可以通過打印日志方式調試,那里不對就修改那里,剛才建的目錄可以理解成web下的資源目錄

2.中文語言

1.scr目錄下創(chuàng)建 locale  目錄,有的話就不用了,不需要英文就把里邊的刪除掉,,看一下 lang_list.txt 想要那個 就留那個.然后在到單機版中將 zh-cn.po 復制過來,就可以了.

2.項目啟動時默認中文 可以修改 Scratch.as 中initialize 方法,增加 

Scratch2.0搭建實現(xiàn)上傳作品到本地服務器、封面圖片等

			Translator.setLanguageValue('zh-cn');

3.載入默認角色

將想要加載的角色做成sb的資源包,類似資源加載的方式加載,Scratch.as  中已實現(xiàn)該方法loadSingleGithubURL 306 行處

initProjecteUrl = initProject/default.sb2 ,scr目錄下新建 initProject 目錄,放入default.sb2文件即可

Scratch2.0搭建實現(xiàn)上傳作品到本地服務器、封面圖片等

4.項目保存至本地服務器

修改 Scratch.as exportProjectToFile 方法,如下:

Scratch2.0搭建實現(xiàn)上傳作品到本地服務器、封面圖片等

	public function exportUploadProjectToFile(fromJS:Boolean = false, saveCallback:Function = null):void {
			function squeakSoundsConverted():void {
				scriptsPane.saveScripts(false);
				var projectType:String = extensionManager.hasExperimentalExtensions() ? '.sbx' : '.sb2';
				var defaultName:String = StringUtil.trim(projectName());
				defaultName = ((defaultName.length > 0) ? defaultName : 'project') + projectType;
				var zipData:ByteArray = projIO.encodeProjectAsZipFile(stagePane);
				//			var file:FileReference = new FileReference();
				//			file.addEventListener(Event.COMPLETE, fileSaved);
				//			file.save(zipData, fixFileName(defaultName));
				upLoadProjectToServer(zipData,fixFileName(defaultName));
			}
			
			function fileSaved(e:Event):void {
				if (!fromJS) setProjectName(e.target.name);
				if (isExtensionDevMode) {
					// Some versions of the editor think of this as an "export" and some think of it as a "save"
					saveNeeded = false;
				}
				if (saveCallback != null) saveCallback();
			}
			
			if (loadInProgress) return;
			var projIO:ProjectIO = new ProjectIO(this);
			projIO.convertSqueakSounds(stagePane, squeakSoundsConverted);
		}
public function upLoadProjectToServer(data:ByteArray,fileName:String):void{
			var projectType:String = extensionManager.hasExperimentalExtensions() ? '.sbx' : '.sb2';
			if(topBarPart.fileName.text == '請給作品起個名字吧' || topBarPart.fileName.text == ''){
				var CurrentDateTime:Date = new Date();
				fileName = "我的作品_"+CurrentDateTimeString()+projectType;
			} else {
				fileName = topBarPart.fileName.text+projectType;
			}
			var parameters:Object = new Object();
			parameters.projectName = fileName;
			// 獲取封面圖片
			var workPic:String = stagePane.getWorkPicToBase64();
			// ExternalInterface.call 只能傳輸object 的方法.現(xiàn)在是在byteArray 轉成 base64 編碼,js端在去解碼
			ExternalInterface.call("window.scratchSaveCall",Base64.encode(data),workPic,fileName);
}

可以通過flex ExternalInterface.call 方法,調用父級窗口中js方法,實現(xiàn)服務器上傳的邏輯,此方法只能傳遞字符串的值,所以需要將 文件 轉換成base64編碼,js端在反解base64 碼轉成文件,即可.

5.獲取封面圖片

scr->scratch->saveScreenshot 方法修改,去掉其保存到本地方法,重新封裝一個方法,在第4 步中通過  ExternalInterface.call  將圖片的base64 傳到js端處理

	// 獲取封面圖片
	public function getWorkPicToBase64():String {
		var bitmapData:BitmapData = new BitmapData(STAGEW, STAGEH, true, 0);
		bitmapData.draw(this);
		var pngData:ByteArray = PNG24Encoder.encode(bitmapData, PNGFilter.PAETH);
		return Base64.encode(pngData);
	}

Scratch2.0搭建實現(xiàn)上傳作品到本地服務器、封面圖片等

在說說IDEA環(huán)境下的注意事項

我目前通過IDEA編譯時,編譯出來的swf文件沒有右鍵,目前還沒有解決

另IDEA編譯時報 沒有找到 Sprite 方法,請引入 playerglobal_rb.swc 我這個是在flexbuild 中找到的....

Scratch2.0搭建實現(xiàn)上傳作品到本地服務器、封面圖片等

moduls 中的編譯參數(shù)

Scratch2.0搭建實現(xiàn)上傳作品到本地服務器、封面圖片等

Scratch2.0搭建實現(xiàn)上傳作品到本地服務器、封面圖片等

打完 收工!!

下方是 js中調用的方法.具體的沒有實現(xiàn).這個和前端的是一樣的了.base64 轉文件的,自行baidu 

window.scratchSaveCall = (bold,picture,name) => {
				console.log(bold);
				
				console.log(picture);

				alert("保存成功");
				 if (window.worksId) {
					
				 } else {
					
				 }

				}

				function save(bold) {
				 
				}

				function updata(bold) {
				 
				}

感謝各位的閱讀,以上就是“Scratch2.0搭建實現(xiàn)上傳作品到本地服務器、封面圖片等”的內容了,經過本文的學習后,相信大家對Scratch2.0搭建實現(xiàn)上傳作品到本地服務器、封面圖片等這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關知識點的文章,歡迎關注!

新聞名稱:Scratch2.0搭建實現(xiàn)上傳作品到本地服務器、封面圖片等
文章出自:http://aaarwkj.com/article0/gdgsoo.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供品牌網站建設、網站制作品牌網站制作、手機網站建設、、網站營銷

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司
国产亚洲欧美久久精品| 深夜福利在线观看97| 一本之道久久成人综合| 97在线公开免费视频| 国产日本福利在线综合网| 中文字幕成人资源网站| 中文字幕在线成人影院| 精品av一区二区在线| 日韩电影在线观看二区| 粉嫩av蜜臀一区二区三区| 国产高清不卡午夜福利| 日韩免费视频一区二区三区免费| 亚洲啪啪av一区二区三区| 国产裸体无遮挡免费精品| 蜜臀视频一区二区在线播放| 国产av一区二区三区野战| 精品一区二区视频在线观看网站| 日韩美少妇大胆一区二区| 国产av午夜精品福利| 人人妻人人澡人人爽的视频| 亚洲福利影院一区久久| 国产高清在线a视频大全| 亚洲精品主播一区二区三区| 国产日本福利在线综合网| 午夜精品久久99蜜桃| 在线观看午夜视频免费| 十八女毛片一区二区三区| 日韩蜜桃av一二三四区| 传媒在线免费观看视频| 全部网站免费在线观看等| 亚洲人妻不卡一区二区| 亚洲清纯唯美激情四射| 97在线观看视频视频| 日本在线一区二区不卡视频 | 亚洲欧美综合伊人看片综合| 亚洲日本欧美在线一区| 国产精品日韩av一区二区| 亚洲激情午夜福利视频| 久久av免费一区二区观看| 国产毛片久久久久久国产| 国产高清av免费在线播放|