| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123 |
- cc.Class
- ({
- extends: cc.BaseClass,
- properties: {
- },
- onLoad:function() {
- },
- SetHook:function(Hook) {
- this.m_Hook = Hook;
- },
- InitDefault:function(){
- if(this.m_headSprite == null) this.m_headSprite = this.node.getComponent(cc.Sprite);
- //保存初始图片和尺寸
- if(this.m_defFrame == null) this.m_defFrame = this.m_headSprite.spriteFrame;
- if(this.m_defSize == null) this.m_defSize = this.node.getContentSize();
- //还原默认图片
- this.m_headSprite.spriteFrame = this.m_defFrame;
- },
- update:function(){
- if(this.m_CheckUserID == null) return;
- this.GetUserHead(this.m_CheckUserID);
- },
- SetUserHead:function(dwUserID, bForceUpdare){
- this.m_bForceUpdare = bForceUpdare;
- this.InitDefault();
- if(dwUserID == null) return;
- this.m_CheckUserID = dwUserID;
- this.m_CheckCnt = 0;
- return true;
- },
- GetUserHead:function(UserID){
- //加载中
- if( g_GlobalUserInfo.m_UserHeadMap[UserID] == 'Loading') return;
- //无效URL 或 加载异常
- // if( g_GlobalUserInfo.m_UserHeadMap[UserID] == 'err' && this.m_Hook) this.m_Hook.OnHeadErr();
- // if( g_GlobalUserInfo.m_UserInfoMap[UserID].HeadUrl == '' || g_GlobalUserInfo.m_UserHeadMap[UserID] == 'err') {
- // this.m_CheckUserID = null;
- // return;
- // }
- if( g_GlobalUserInfo.m_UserHeadMap[UserID] == 'err') {
- this.m_Hook && this.m_Hook.OnHeadErr();
- this.m_CheckUserID = null;
- return;
- }
- let headURL = g_GlobalUserInfo.m_UserInfoMap[UserID].HeadUrl;
- console.log("headURL",headURL)
- if(!headURL||headURL == '' || !headURL.includes(window.PHP_HOME)) {
- let self = this;
- cc.resources.load(`Image/Head/head_default${window.PLATFORM_ID}`, cc.SpriteFrame, function (err, sprFrame) {
- if (err) {
- cc.error(err);
- return;
- }
- g_GlobalUserInfo.m_UserHeadMap[UserID] = sprFrame;
- self.HeadLoadFinish();
- });
- return;
- }
- //第一次加载 或 加载完成直接使用
- if(this.m_bForceUpdare || g_GlobalUserInfo.m_UserHeadMap[UserID] == null){
- g_GlobalUserInfo.m_UserHeadMap[UserID] = 'Loading';
- this.SetHeadUrl(headURL, UserID);
- } else {
- this.HeadLoadFinish();
- }
- },
- HeadLoadFinish:function(){
- this.m_headSprite.spriteFrame = g_GlobalUserInfo.m_UserHeadMap[this.m_CheckUserID];
- var size = new cc.size(this.m_defSize.width,this.m_defSize.height)
- this.node.setContentSize(size);
- this.m_CheckUserID = null;
- if(this.m_Hook && this.m_Hook.OnHeadFinish) this.m_Hook.OnHeadFinish();
- },
- SetHeadUrl :function(szUrl, UserID){
-
- if(szUrl==undefined) return false;
- if( szUrl != null && szUrl != undefined && szUrl != "" ){//&& !cc.sys.isNative
- var name = szUrl.substring(szUrl.lastIndexOf("/")+1)
- if( name.indexOf(".") < 0) szUrl += "?"+name+".jpg"
- }
- this.m_url = szUrl;
- this.m_checkCnt = 0;
- this.DownLoadHead(UserID);
- return true;
- },
- //加载头像
- DownLoadHead:function(UserID, bNoSkip){
- var szUrl = window.PHP_HOME+'/HeadImage.php?url='+this.m_url + 'jpg';
- // if(bNoSkip) szUrl = this.m_url;
- // if(cc.sys.localStorage.getItem(AndroidBUG)) this.m_url = this.m_url.replace('https','http');
- if(this.m_url.indexOf('https') >= 0) szUrl = this.m_url;
- cc.assetManager.loadRemote(szUrl, function(err, texture){
- if(err) return this.OnLoadErr(err, UserID);
- g_GlobalUserInfo.m_UserHeadMap[UserID] = new cc.SpriteFrame(texture);
- if(UserID == this.m_CheckUserID) this.HeadLoadFinish();
- }.bind(this));
- },
- OnLoadErr:function(err, UserID){
- try {
- if(window.LOG_NET_DATA)console.log("head OnLoadErr:"+this.m_checkCnt +" :"+this.m_url+" err:"+err);
- } catch (error) {}
- //android 5.0 加载https 失败
- if(this.m_url.indexOf('https') >= 0) cc.sys.localStorage.setItem(AndroidBUG, 1);
- this.m_checkCnt++;
- //if(this.m_checkCnt++ < 2){
- this.DownLoadHead(UserID, (this.m_checkCnt%2 == 0));
- /*}else{
- g_GlobalUserInfo.m_UserHeadMap[UserID] = 'err';
- if(UserID == this.m_CheckUserID) {
- this.m_CheckUserID = null;
- if(this.m_Hook) this.m_Hook.OnHeadErr();
- }
- }*/
- },
- });
|