123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- import { _decorator, assetManager, Component, ImageAsset, Label, Node, Sprite, SpriteFrame, Texture2D } from 'cc';
- import HTTPS, { NetPost } from '../MyFrame/HTTPS';
- const { ccclass, property } = _decorator;
- @ccclass('Rank')
- export class Rank extends Component {
- @property(Label)
- PageLabel: Label = null;
- @property(Node)
- Layout: Node = null;
- last_page = 1
- @property(SpriteFrame)
- defaultImage: SpriteFrame = null;
- close() {
- this.node.active = false
- }
- protected onEnable(): void {
- this.RequestRank(1)
- }
- UP() {
- let page = this.extractFirstNumberFromString(this.PageLabel.string)
- page -= 1
- if (page <= 1) {
- page = 1
- }
- this.PageLabel.string = `第 ${page} 页`
- this.RequestRank(page)
- }
- DOWN() {
- let page = this.extractFirstNumberFromString(this.PageLabel.string)
- page += 1
- if (page >= this.last_page) {
- page = this.last_page
- }
- this.PageLabel.string = `第 ${page} 页`
- this.RequestRank(page)
- }
- RequestRank(page: number) {
- //请求排行榜数据
- HTTPS.Instance.post(NetPost.ranking_list,
- {
- list_rows: 7,
- page: page,
- }).then((resp) => {
- console.error('请求排行榜数据成功');
- console.error(resp);
- this.last_page = resp.data.last_page
- this.Layout.children.forEach((item, index) => {
- let NickName = item.getChildByName("NickName")
- let Order = item.getChildByName("Order")
- let Score = item.getChildByName("Score")
- let image = item.getChildByName("image")
- if (resp.data.data[index]) {
- item.active = true
- Order.getComponent(Label).string = ((page - 1) * 7 + index + 1).toString()
- NickName.getComponent(Label).string = resp.data.data[index].nickname
- Score.getComponent(Label).string = resp.data.data[index].score.toString()
- if (resp.data.data[index].avatar != '') {
- assetManager.loadRemote<ImageAsset>(resp.data.data[index].avatar, { ext: '.png' }, function (err, ImageAsset) {
- if (!err && ImageAsset) {
- console.log(ImageAsset);
- let tex = new Texture2D()
- tex.image = ImageAsset
- let sp = new SpriteFrame()
- sp.texture = tex
- image.getComponent(Sprite).spriteFrame = sp;
- } else {
- console.log(err);
- }
- // ...
- });
- } else {
-
- image.getComponent(Sprite).spriteFrame = this.defaultImage;
- }
- } else {
- item.active = false
- }
- })
- })
- }
- extractFirstNumberFromString(input: string): number | null {
- const match = input.match(/\d+/);
- return match ? Number(match[0]) : null;
- }
- }
|