Cocos Creator 資源加載(筆記)


cc.loader 加載資源
動態加載資源要注意兩點,一是所有需要通過腳本動態加載的資源,都必須放置在 resources 文件夾或它的子文件夾下。resources 需要在 assets 文件夾中手工創建,並且必須位於 assets 的根目錄;

Creator 提供了 cc.loader.loadRes 這個 API 來專門加載那些位於 resources 目錄下的 Asset。和 cc.loader.load 不同的是,loadRes 一次只能加載單個 Asset。調用時,你只要傳入相對 resources 的路徑即可,並且路徑的結尾處不能包含文件擴展名。

// 加載 Prefab
cc.loader.loadRes("test assets/prefab", function (err, prefab) {
var newNode = cc.instantiate(prefab);
cc.director.getScene().addChild(newNode);
});

// 加載 AnimationClip
var self = this;
cc.loader.loadRes("test assets/anim", function (err, clip) {
self.node.getComponent(cc.Animation).addClip(clip, "anim");
});

// 加載 SpriteAtlas(圖集),並且獲取其中的一個 SpriteFrame
// 注意 atlas 資源文件(plist)通常會和一個同名的圖片文件(png)放在一個目錄下, 所以需要在第二個參數指定資源類型
cc.loader.loadRes("test assets/sheep", cc.SpriteAtlas, function (err, atlas) {
var frame = atlas.getSpriteFrame('sheep_down_0');
sprite.spriteFrame = frame;
});

// 加載 SpriteFrame
var self = this;
cc.loader.loadRes("test assets/image", cc.SpriteFrame, function (err, spriteFrame) {
self.node.getComponent(cc.Sprite).spriteFrame = spriteFrame;
});

cc.loader.releaseRes("test assets/image", cc.SpriteFrame);
cc.loader.releaseRes("test assets/anim");

// 加載 test assets 目錄下所有資源
cc.loader.loadResDir("test assets", function (err, assets) {
// ...
});

// 加載 sheep.plist 圖集中的所有 SpriteFrame
cc.loader.loadResDir("test assets/sheep", cc.SpriteFrame, function (err, assets) {
// assets 是一個 SpriteFrame 數組,已經包含了圖集中的所有 SpriteFrame。
// 而 loadRes('test assets/sheep', cc.SpriteAtlas, function (err, atlas) {...}) 獲得的則是整個 SpriteAtlas 對象。
});

// 遠程 url 帶圖片后綴名
var remoteUrl = "http://unknown.org/someres.png";
cc.loader.load(remoteUrl, function (err, texture) {
// Use texture to create sprite frame
});

// 遠程 url 不帶圖片后綴名,此時必須指定遠程圖片文件的類型
remoteUrl = "http://unknown.org/emoji?id=124982374";
cc.loader.load({url: remoteUrl, type: 'png'}, function () {
// Use texture to create sprite frame
});

// 用絕對路徑加載設備存儲內的資源,比如相冊
var absolutePath = "/dara/data/some/path/to/image.png"
cc.loader.load(absolutePath, function () {
// Use texture to create sprite frame
});


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM