FightPlaceItem.ts 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. import { _decorator, Component, Node, Label, sp, Sprite, ImageAsset, SpriteFrame, Texture2D } from 'cc';
  2. import { DataSystem } from '../../core/data/DataSystem';
  3. import { Http } from '../../core/net/Http';
  4. import { ResourceLoader } from '../../core/resourceManager/ResourceLoader';
  5. import { WindowSystem } from '../../core/ui/window/WindowSystem';
  6. import { ISJSB, platform } from '../../data/jsb/platform';
  7. import { UserHeroData } from '../../hero/UserHeroData';
  8. import { ReportThinking } from '../../ReportThinking';
  9. import { FriendData } from '../FightData';
  10. const { ccclass, property } = _decorator;
  11. /**切磋站位Item*/
  12. @ccclass('FightPlaceItem')
  13. export class FightPlaceItem extends Component {
  14. @property({ type: ResourceLoader, displayName: "资源加载组件", tooltip: "资源加载组件" }) res: ResourceLoader = null;
  15. @property({ type: Http, displayName: "Http组件", tooltip: "Http组件" }) http: Http = null;
  16. @property({ type: sp.Skeleton, displayName: '武将动画', tooltip: "武将动画" }) spineHero: sp.Skeleton = null;
  17. @property({ type: Sprite, displayName: '头像', tooltip: "头像" }) imgHead: Sprite = null;
  18. @property({ type: Node, displayName: '邀请按钮', tooltip: "邀请按钮" }) addNode: Node = null;
  19. public async init(friendData: FriendData) {
  20. this.spineHero.node.active = !!friendData;
  21. this.addNode.active = !friendData;
  22. this.imgHead.node.active = !!friendData;
  23. if (friendData) {
  24. let heroID = friendData.heroID;
  25. let hero = DataSystem.getData(UserHeroData).get(heroID);
  26. this.spineHero.skeletonData = await this.res.load<sp.SkeletonData>("spine/hero/" + hero.client.hero_res, sp.SkeletonData);
  27. this.spineHero.animation = "idle";
  28. if (ISJSB() && friendData.avator) {
  29. let img = await this.res.loadRemote<ImageAsset>(friendData.avator, { ext: ".png" });
  30. const spriteFrame = new SpriteFrame();
  31. const texture = new Texture2D();
  32. texture.image = img;
  33. spriteFrame.texture = texture;
  34. this.imgHead.spriteFrame = spriteFrame;
  35. }
  36. }
  37. }
  38. private async onClickShare() {
  39. //邀请
  40. let result = await this.http.send("/api/app/share", {});
  41. if (result.code == 0) {
  42. ReportThinking.invite();
  43. platform.wxShare(result.data.url, result.data.title, result.data.descroption);
  44. } else {
  45. WindowSystem.showTips("分享信息获取失败,请稍后再试");
  46. }
  47. }
  48. }