Root.ts 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. import { Component, game, Game, ResolutionPolicy, screen, Size, UITransform, view, _decorator } from "cc";
  2. import { AudioManager } from './audio/AudioManager';
  3. import { Audio_Conf } from "./config/AudioConf";
  4. import { FrameworkConf } from "./config/FrameworkConf";
  5. import { Layer_Conf } from "./config/LayerConf";
  6. import { Framework } from './Framework';
  7. import { LayerManager } from "./layer/LayerManager";
  8. import { TimeManager } from "./time/TimeManager";
  9. import { TipsManager } from "./tips/TipsManager";
  10. const { ccclass, requireComponent, property } = _decorator;
  11. @ccclass('Root')
  12. @requireComponent(UITransform)
  13. export class Root extends Component {
  14. private _transform: UITransform = null;
  15. private _portrait_size: Size = null;
  16. private _landscape_szie: Size = null!;
  17. onLoad() {
  18. Framework.storage.init(FrameworkConf.storage_key, FrameworkConf.storage_iv);
  19. this._transform = this.node.getComponent(UITransform);
  20. if (view.getDesignResolutionSize().width > view.getDesignResolutionSize().height) {
  21. this._landscape_szie = view.getDesignResolutionSize();
  22. this._portrait_size = new Size(this._landscape_szie.height, this._landscape_szie.width);
  23. } else {
  24. this._portrait_size = view.getDesignResolutionSize();
  25. this._landscape_szie = new Size(this._portrait_size.height, this._portrait_size.width);
  26. }
  27. Framework.time = new TimeManager(this);
  28. Framework.audio = AudioManager.instance;
  29. Framework.audio.init(Audio_Conf);
  30. Framework.layer = new LayerManager(this.node, Layer_Conf);
  31. Framework.tips = new TipsManager(this.node);
  32. game.on(Game.EVENT_SHOW, () => {
  33. Framework.event.fireEvent(FrameworkConf.Event.GAME_SHOW);
  34. console.log("Game.EVENT_SHOW")
  35. });
  36. game.on(Game.EVENT_HIDE, () => {
  37. Framework.event.fireEvent(FrameworkConf.Event.GAME_HIDE);
  38. console.log("Game.EVENT_HIDE")
  39. });
  40. screen.on("window-resize",()=>{
  41. console.log("window-resize")
  42. this.resize();
  43. Framework.event.fireEvent(FrameworkConf.Event.GAME_RESIZE);
  44. })
  45. document.addEventListener('visibilitychange', function() {
  46. if (document.hidden) {
  47. console.log('用户已经切换到后台');
  48. } else {
  49. console.log('用户已经切换回前台');
  50. }
  51. });
  52. // view.setResizeCallback(() => {
  53. // this.resize();
  54. // Framework.event.fireEvent(FrameworkConf.Event.GAME_RESIZE);
  55. // });
  56. this.resize();
  57. console.log("Framework初始化完成");
  58. Framework.event.fireEvent(FrameworkConf.Event.INIT_FINISH);
  59. }
  60. //屏幕适配
  61. resize() {
  62. let dr = (view.getDesignResolutionSize().width > view.getDesignResolutionSize().height) ? this._landscape_szie : this._portrait_size;
  63. let s = screen.windowSize;
  64. let rw = s.width;
  65. let rh = s.height;
  66. let finalW = rw;
  67. let finalH = rh;
  68. if ((rw / rh) > (dr.width / dr.height)) {
  69. finalH = dr.height;
  70. finalW = finalH * rw / rh;
  71. } else {
  72. finalW = dr.width;
  73. finalH = finalW * rh / rw;
  74. }
  75. view.setDesignResolutionSize(finalW, finalH, ResolutionPolicy.UNKNOWN);
  76. this._transform!.width = finalW;
  77. this._transform!.height = finalH;
  78. }
  79. }