資源不只是可以通過編輯器綁定獲取.
站在用戶的角度思考問題,與客戶深入溝通,找到達(dá)茂旗網(wǎng)站設(shè)計(jì)與達(dá)茂旗網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、申請(qǐng)域名、網(wǎng)站空間、企業(yè)郵箱。業(yè)務(wù)覆蓋達(dá)茂旗地區(qū)。其實(shí)他還可以使用代碼來動(dòng)態(tài)加載.
cc.loader
1.它有3個(gè)默認(rèn)的Pipeline(管道):
(1)assetLoader:主要用于加載資源,加載asset類型資源和釋放這些資源
(2)downloader:主要用于下載文件,文本,圖像,腳本,聲音,字體,自定義的download
(3)loader:第三個(gè)是默認(rèn)的Pipeline可以加載json,image,plist,fnt,uuid;
2.資源分為本地(assets目錄下)和遠(yuǎn)程資源
3.加載分為同步和異步, cc.Loader加載資源是 異步的
本地資源加載
1在代碼里加載資源必須要求資源放在assets/resources文件夾下
因?yàn)檫@是一種優(yōu)化策略:根據(jù)場(chǎng)景的依賴關(guān)系來打包我們的資源
就是說你這個(gè)資源用到了,他才打包,如果沒用到他就不打包.
這樣能夠節(jié)省資源,去掉無用的資源, 在代碼里使用隨時(shí)有可能去掉
他認(rèn)為不用的資源,但是無法判斷在代碼里加載的資源是哪些,
所以使用一種方案,所有resources目錄下的資源都會(huì)被打包進(jìn)去.
所以資源你不在代碼里加載的,不要放在resources目錄下.
2加載的時(shí)候資源url不需要加assets/resources這個(gè)部分
3.cc.loader.loadRes(url,onComplete回調(diào)函數(shù))
4.loadResArray([],type類型,progressCallback,completeCallback);
5.loadResDir(url[type][progressCallback][completeCallback])
他是加載一個(gè)路勁下的資源
6getRes(url,[type]); 獲取資源id
加載播放一個(gè)聲音mp3 第二個(gè)參數(shù)是加載完成的回調(diào)函數(shù)
加載完后在回調(diào)函數(shù)里進(jìn)行播放即可.
local_load: function(){ //本地加載聲音 //第一個(gè)參數(shù)是url 不要后綴名 cc.loader.loadRes("bgFight",function(err,prefab){ if(err){ //這里就是有錯(cuò)誤發(fā)生 console.log(err); return; } //這里就是沒出錯(cuò) 并且輸出他的信息 console.log(prefab); //因?yàn)樗且粋€(gè)audio Clip this.audio.clip = prefab; //播放 console.log("播放"); this.audio.play(); }.bind(this)); },加載圖片
local_load: function(){ //和聲音不同 這里要寫加載的類型 cc.loader.loadRes("texture/powered",cc.SpriteFrame, function(err,pre){ //加載資源的回調(diào)函數(shù) if(err){ //這里就是有錯(cuò)誤發(fā)生 console.log(err); return; } //否則這里就是spriteFrame對(duì)象 console.log(pre); this.spr.spriteFrame = pre; }.bind(this)); }獲取資源getRes 例如一個(gè)游戲,在進(jìn)入下一個(gè)場(chǎng)景之前,有一個(gè)場(chǎng)景
加載資源,那么到了新的場(chǎng)景之后,我們就找到這個(gè)加載好的資源
遠(yuǎn)程資源加載
1 cc.loader.load(url,結(jié)束回調(diào)函數(shù));
使用互聯(lián)網(wǎng)上 或者遠(yuǎn)程部署的圖片
2 cc.loader.load({url"",type""},結(jié)束回調(diào)函數(shù));
3 遠(yuǎn)程加載任意類型文件
去百度一張圖片 或者自己搭建一個(gè)web服務(wù)器
//遠(yuǎn)程加載 cc.loader.load("http://game.people.com.cn/NMediaFile/2015/1029/MAIN201510290900000533552743089.jpg" ,function(err,ret){ //他沒有type 他返回的是cc.Texture2D對(duì)象 if(err){ console.log(err); return; } //因?yàn)檫@個(gè)返回的是 cc.Texture2D的對(duì)象 //所以需要調(diào)用這個(gè)設(shè)置一下 this.spr.spriteFrame.setTexture(ret); }.bind(this));
成功加載了但是他變得很小,如果想用原始大小呢
只需要設(shè)置精靈大小為這個(gè) texture2D的大小即可 使用他默認(rèn)大小
this.spr.node.setContentSize(ret.getContentSize())從服務(wù)器加載一個(gè)mp3播放,有可能你的url沒有后綴名,
使用第二種方法 ,就可以指定type啦,有后綴名也可以指定
cc.loader.load({url: "http://127.0.0.1:8001/asdbp.mp3",type:"mp3"}, function(err,ret){ console.log("播放"); this.audio.clip = ret; this.audio.play(); }.bind(this));加載json數(shù)據(jù)
cc.loader.load({url" , function(err,ret){ console.log(ret); } )就是說你想要什么類型 只要在type添加就行
cc.loader.load({url"http://127.0.0.1:8001/psonsetn.abced",type:"abced"} ,資源卸載
1.每個(gè)場(chǎng)景有個(gè)自動(dòng)釋放資源,勾選上這個(gè)場(chǎng)景的資源會(huì)自動(dòng)釋放,
不勾選上這個(gè)場(chǎng)景的資源不釋放.
還有個(gè)延時(shí)加載資源:他的作用是如果關(guān)閉,那這個(gè)場(chǎng)景間接或直接遞歸
依賴的所有資源都將被加載,全部加載后才會(huì)觸發(fā)場(chǎng)景切換.
如果開啟:
這個(gè)場(chǎng)景直接或間接依賴的所有貼圖,粒子和聲音都將被延遲到場(chǎng)景
切換后才加載,使場(chǎng)景加載速度極大提升,同時(shí),玩家進(jìn)入場(chǎng)景后可能會(huì)
看到一些資源陸續(xù)顯示出來,并且激活,這種方式適合網(wǎng)頁游戲.
注意,spine和TieldMap依賴的資源永遠(yuǎn)都不會(huì)被延遲加載.
2.代碼加載的資源,默認(rèn)是不會(huì)收這個(gè)選項(xiàng)的影響的,除非設(shè)置
setAutoRelease(url,bool)
使用這個(gè) API 可以在單個(gè)資源上改變這個(gè)默認(rèn)行為,
強(qiáng)制在切換場(chǎng)景時(shí)保留或者釋放指定資源。
3.手動(dòng)釋放資源
loadRes/releaseRes
load/release
releaseAsset(資源對(duì)象的object)
我加載一個(gè)圖片,異步加載好后 立刻釋放, 然后5秒之后
在顯示圖片,他就顯示不出來了,因?yàn)樗会尫诺袅?/p> local_load: function(){ //和聲音不同 這里要寫加載的類型 cc.loader.loadRes("texture/powered",cc.SpriteFrame, function(err,pre){ //加載資源的回調(diào)函數(shù) if(err){ //這里就是有錯(cuò)誤發(fā)生 console.log(err); return; } ////////////異步加載好后 立刻釋放 cc.loader.releaseRes("texture/powered",cc.SpriteFrame); //否則這里就是spriteFrame對(duì)象 console.log(cc.loader.getRes("texture/powered"),cc.SpriteFrame); }.bind(this)); this.scheduleOnce(function(){ this.spr.spriteFrame = cc.loader.getRes("texture/powered",cc.SpriteFrame); }.bind(this),5);
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。
當(dāng)前文章:使用代碼來加載資源和釋放資源-創(chuàng)新互聯(lián)
文章來源:http://jinyejixie.com/article46/gphhg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作、動(dòng)態(tài)網(wǎng)站、定制網(wǎng)站、電子商務(wù)、軟件開發(fā)、網(wǎng)站排名
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容