1. 程式人生 > >QQ 玩一玩獲取使用者影象暱稱以及CocosCreator動態載入網路圖片

QQ 玩一玩獲取使用者影象暱稱以及CocosCreator動態載入網路圖片

文章目錄

QQ 玩一玩獲取使用者影象、暱稱以及CocosCreator載入圖片的幾種方式介紹

1、CocosCreator 載入圖片的幾種方式

  • CocosCreator 載入網路圖片
  • CocosCreator 載入本地圖片
//設定顯示圖片
function setImg(imgNode, spriteFrame) {
    imgNode.getComponent(cc.Sprite).spriteFrame = spriteFrame;
}
//載入網路圖片
function loadImgByUrl(imgNode, remoteUrl, imageType) {
    if (!imageType) {
        imageType = "png";
    }
    cc.loader.load({
        url: remoteUrl,
        type: imageType
    }, function (err, texture) {
        if (err) {
            return;
        }
        setImg(imgNode, new cc.SpriteFrame(texture));
    });
}
//載入手機本地圖片
function loadLocal(absolutePath, imgNode) {
    cc.loader.load(absolutePath, function (err, texture) {
        if (err) {
            return;
        }
        setImg(imgNode, new cc.SpriteFrame(texture));
    });
}

module.exports = {
    loadImgByUrl: loadImgByUrl,
    loadLocal: loadLocal,
    setImg: setImg,
};

2、QQ 玩一玩通過openId獲取使用者影象、暱稱

 BK.MQQ.Account.getNick(GameStatusInfo.openId, function (openId, nick) {
 	cc.log("nick:"+nick);
 });
getHead() {
        let self = this;
        let absolutePath = "GameSandBox://_head/" + GameStatusInfo.openId + ".jpg";
        let isExit = BK.FileUtil.isFileExist(absolutePath);
        cc.log(absolutePath + " is exit :" + isExit);
        //如果指定目錄中存在此影象就直接顯示否則從網路獲取
        if (isExit) {
            cc.loader.load(absolutePath, function (err, texture) {
                if (err == null) {
                    self.head.getComponent(cc.Sprite).spriteFrame = new cc.SpriteFrame(texture);
                }
            });
        } else {
            BK.MQQ.Account.getHeadEx(GameStatusInfo.openId, function (oId, imgPath) {
                cc.log("openId:" + oId + " imgPath:" + imgPath);//imgPath為本地圖片顯示圖片也可以使用上文提到的loadLocal
                var image = new Image();
                image.onload = function () {
                    var tex = new cc.Texture2D();
                    tex.initWithElement(image);
                    tex.handleLoadedTexture();
                    self.head.getComponent(cc.Sprite).spriteFrame = new cc.SpriteFrame(tex);
                }
                image.src = imgPath;
            });
        }
    }