import GameData from "./GameData"; import List from "./ListView/List"; import HttpUtil from "./crypto/serverAPI"; // import { apiSign } from "./crypto/sign"; const { ccclass, property } = cc._decorator; @ccclass export default class Helloworld extends cc.Component { @property(cc.Node) Player: cc.Node = null; @property(cc.Node) selfNode: cc.Node = null; @property(cc.Sprite) phone: cc.Sprite = null; private rankList: List; //排行榜 tween: cc.Tween; listData: any; selfData: any; rankNumber: number; rankTotal: number; onLoad() { this.rankList = cc.find("ScrollView", this.node).getComponent(List); this.listData = []; this.selfData = null; this.rankNumber = 100; this.rankTotal= 100; this.selfNode.opacity = 0; } start() { this.getRank(); } getRankData(data){ if(data){ console.log(data); this.listData = data.data.list; this.selfData = data.data.info; let rankData = []; let self = false; for(let i=0;i<=this.listData.length-1;i++){ rankData.push({rank:(i+1), name:this.listData[i].nickName, total:this.listData[i].totalSunCount, pic:this.listData[i].pic}); if(GameData._instance.GM_INFO.userId == this.listData[i].userId){ self = true; this.rankNumber = i; this.selfNode.getChildByName("rankLab").getComponent(cc.Label).string =(i+1) + ""; } if(i == (this.listData.length-1) && self == false){ this.rankNumber = i; this.selfNode.getChildByName("rankLab").getComponent(cc.Label).string = "99+"; } } this.rankList.setData(rankData); if(this.selfData.nickName.length > 6){ this.selfData.nickName= this.selfData.nickName.substring(0,6) + "..." } this.selfNode.getChildByName("nameLab").getComponent(cc.Label).string = this.selfData.nickName; this.selfNode.getChildByName("totalLab").getComponent(cc.Label).string = this.selfData.totalSunCount; this.setPic(this.selfData.pic); this.setPic2(this.selfData.pic); if(this.selfNode.getChildByName("rankLab").getComponent(cc.Label).string == "1"){ this.selfNode.getChildByName("rank").getChildByName("one").active = true; } else if(this.selfNode.getChildByName("rankLab").getComponent(cc.Label).string == "2"){ this.selfNode.getChildByName("rank").getChildByName("two").active = true; } else if(this.selfNode.getChildByName("rankLab").getComponent(cc.Label).string == "3"){ this.selfNode.getChildByName("rank").getChildByName("three").active = true; } else{ // this.selfNode.getChildByName("four").active = true; } this.selfNode.opacity = 255; } } backClick(){ cc.director.loadScene("LoadScene"); } playerAction(){ //-254 377 210 453 let time = 1; this.tween = cc.tween(this.Player) .to(2,{position:cc.v3(210,453,0)}) .start(); time = (this.listData.length - this.rankNumber)/this.listData.length; if(this.listData.length >= 99){ if(this.rankNumber >= 99){ time = (Math.random()*49+1)/100 } } setTimeout(() => { if(this.tween)this.tween.stop(); }, time*2000); } getRank(){ let postData = { "page":1, "pageSize":100 }; HttpUtil.rankData(2,this.getRankData.bind(this),postData); } public setPic(pic){ this.phone.node.parent.getChildByName("icon").active = false; this.phone.node.active = false; let url = pic; fetch(url) .then(response => { return response.headers.get('Content-Length'); }) .then(errNo => { if(errNo == "5093"){ this.phone.node.parent.getChildByName("icon").active = true; } }) .catch(error => { console.error('Error fetching X-Info:', error); }); var self = this; cc.assetManager.loadRemote(url, {ext:'.jpg'},(err, texture:cc.Texture2D) => { if(texture){ this.phone.node.active = true; self.phone.spriteFrame = new cc.SpriteFrame(texture); } else{ console.log(err,texture) } }) } public setPic2(pic){ this.Player.getChildByName("mask").getChildByName("icon").active = false; this.Player.getChildByName("mask").getChildByName("phone").active = false; let url = pic; fetch(url) .then(response => { return response.headers.get('Content-Length'); }) .then(errNo => { if(errNo == "5093"){ this.Player.getChildByName("mask").getChildByName("icon").active = true; } }) .catch(error => { console.error('Error fetching X-Info:', error); }); var self = this; cc.assetManager.loadRemote(url, {ext:'.jpg'},(err, texture:cc.Texture2D) => { if(texture){ this.Player.getChildByName("mask").getChildByName("phone").active = true; this.Player.getChildByName("mask").getChildByName("phone").getComponent(cc.Sprite) .spriteFrame = new cc.SpriteFrame(texture); setTimeout(() => { this.playerAction(); }, 500); // console.log("设置头像成功",err); } else{ // console.log("设置头像失败",url); console.log(err,texture) setTimeout(() => { this.playerAction(); }, 500); } }) } }