Adapt.ts 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. const { ccclass, property } = cc._decorator;
  2. @ccclass
  3. export default class Adapt extends cc.Component {
  4. @property(cc.Widget)
  5. widget: cc.Widget = null
  6. private _dw = 750
  7. private _dh = 1334
  8. /**
  9. * 专门针对 竖屏 h5 适配
  10. */
  11. protected onLoad(): void {
  12. if(cc.sys.platform === cc.sys.DESKTOP_BROWSER || cc.sys.platform === cc.sys.MOBILE_BROWSER){
  13. this._adapt()
  14. }
  15. }
  16. private _adapt() {
  17. // 设计尺寸比例
  18. let drate = this._dw / this._dh
  19. // 实际尺寸比例
  20. let preate = cc.winSize.width / cc.winSize.height
  21. if (preate <= drate) {
  22. cc.view.setDesignResolutionSize(this._dw, cc.winSize.height, cc.ResolutionPolicy.FIXED_WIDTH);
  23. this.widget.left = 0
  24. this.widget.right = 0
  25. } else {
  26. let r = cc.winSize.height / this._dh
  27. cc.view.setDesignResolutionSize(this._dw / r, this._dh / r, cc.ResolutionPolicy.FIXED_WIDTH);
  28. let gap = cc.winSize.width - this._dw
  29. this.widget.left = gap / 2
  30. this.widget.right = gap / 2
  31. }
  32. this.widget.updateAlignment();
  33. }
  34. }