UIGameLoadingPage.ts 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. import UIPage from "../Framework/UIPage";
  2. import Constant, { PageName } from "../Framework/Constant";
  3. import { cocosz } from "../Framework/CocosZ";
  4. import { guideLayer } from "./GuideLayer";
  5. const { ccclass, property } = cc._decorator;
  6. @ccclass
  7. export default class UIGameLoadingPage extends UIPage {
  8. private _startTime: number = 0;
  9. constructor() {
  10. super(PageName.UIGameLoadingPage);
  11. this.isValid() && this.onLoad();
  12. }
  13. protected onOpen(): void {
  14. cc.game.on(Constant.E_GAME_LOGIC, this._onGameMessageHandler, this);
  15. this._startTime = new Date().getTime();
  16. cocosz.scheduleOnce(() => {
  17. cocosz.audioMgr.playEffect("fj", true, 1);
  18. }, 0.1);
  19. }
  20. protected onClose() {
  21. cc.game.targetOff(this);
  22. guideLayer.hideFjAni();
  23. guideLayer.node.zIndex = cc.macro.MIN_ZINDEX;
  24. cocosz.audioMgr.stopEffect("fj");
  25. }
  26. private _onGameMessageHandler(event: any) {
  27. switch (event.type) {
  28. case Constant.E_UPDATE_PROGRESS: {
  29. this._updateProgress(event.data);
  30. break;
  31. }
  32. }
  33. }
  34. private _updateProgress(pro: number) {
  35. if (pro >= 1) {
  36. let difTime = new Date().getTime() - this._startTime;
  37. if (difTime >= 6000) {
  38. cocosz.uiMgr.openPage(PageName.UIGamePage);
  39. } else {
  40. setTimeout(() => {
  41. cocosz.uiMgr.openPage(PageName.UIGamePage);
  42. }, 6000 - difTime);
  43. }
  44. }
  45. }
  46. }