egret默认自带了分辨率自适应的几种应用模式,移动端最合适的是noBorder和showAll模式,noBorder已经能够很好的兼容大部分的屏幕,但是遇到微信浏览器,顶部的状态栏会占用一部分显示容器的高度,所以顶部会有一部分内容被遮住,这时候可以使用js的一些方法,动态计算出可视区域的高度,从而在载入舞台的时候,动态调整舞台高度,实现过程如下:
判断微信浏览器
判断微信浏览器1 2 3 4 5 6 7 8 9
| public static isWeiXin(): boolean { var ua = window.navigator.userAgent.toLowerCase(); var microStr = "" + ua.match(/MicroMessenger/i); if(microStr == "null") { return false; } else if(microStr == "micromessenger") { return true; } }
|
计算浏览器高度
动态调整舞台高度1 2 3 4 5 6
| function getWeixinStageHeight(){ var vh = window.innerHeight * window.devicePixelRatio; var vw = window.innerWidth * window.devicePixelRatio; return GameConfig.gameWidth / (vw / vh); }
|
以上两段代码,在初始化舞台的时候调用,舞台容器中使用动态布局,即可完美自适应微信浏览器。