CocosCreate的纹理缓存加快纹理设置

mac2024-06-04  58

    //纹理缓存获取

    _getSpriteFrame: function (spriteFrameName) {

        var atlas = null;

        var len = this._allAtlas.length;

        for (var i = 0; i < len; i++) {

            atlas = this._allAtlas[i];

            var frame = atlas.getSpriteFrame(spriteFrameName);

            if (frame) {

                return frame;

            }

        }

        return null;

    },

 

    // atlasName图集名字需要全称 frameName就是图片数据

    setSpriteFrameForSprite: function (sprite, frameName, atlasName) {

        var spriteFrame = this._getSpriteFrame(frameName);

        if (!spriteFrame) {

            cc.loader.loadRes(atlasName, cc.SpriteAtlas, function (frameName, err, atlas) {

                if (!err) {

                    this._allAtlas.push(atlas);

                    if (cc.isValid(sprite)) {

                        sprite.spriteFrame = atlas.getSpriteFrame(frameName);

                    }

                } else {

                    cc.log(this._tag, "set sprite frame for sprite " + frameName + "error = " + JSON.stringify(err));

                }

 

            }.bind(this, frameName));

        } else {

            if (cc.isValid(sprite)) {

                sprite.spriteFrame = spriteFrame;

            }

        }

    },

最新回复(0)