egret_loader.js 3.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. function setStageSize() {
  2. if (/iphone/i.test(navigator.userAgent)) {
  3. window["client"] = "iphone";
  4. } else {
  5. window["client"] = "android";
  6. }
  7. /*全屏适配*/
  8. var winHeight;
  9. var winWidth;
  10. if (document.documentElement && document.documentElement.clientHeight &&
  11. document.documentElement.clientWidth) {
  12. winHeight = document.documentElement.clientHeight;
  13. winWidth = document.documentElement.clientWidth;
  14. } else {
  15. winHeight = window.innerHeight;
  16. winWidth = window.innerWidth;
  17. }
  18. var GameWin;
  19. if (window["client"] == "iphone") {
  20. GameWin = {w: 640, h: 1136}; //i6苹果分辨率
  21. } else {
  22. GameWin = {w: 320, h: 568};//安卓客户端考虑到性能,将分辨率降为i6分辨率的一半
  23. }
  24. var Gper = GameWin.h / GameWin.w;
  25. var per = winHeight / winWidth;
  26. if (per < Gper) {
  27. window["stage_width"] = GameWin.h / per;
  28. window["stage_height"] = GameWin.h;
  29. } else if (per >= Gper) {
  30. window["stage_width"] = GameWin.w;
  31. window["stage_height"] = GameWin.w * per;
  32. }
  33. egret.StageDelegate.getInstance().setDesignSize(window["stage_width"], window["stage_height"]);
  34. if (window["client"] == "android") {
  35. window["stage_width"] *= 2;
  36. window["stage_height"] *= 2;
  37. }
  38. }
  39. egret_h5.startGame = function () {
  40. var context = egret.MainContext.instance;
  41. context.touchContext = new egret.HTML5TouchContext();
  42. context.deviceContext = new egret.HTML5DeviceContext();
  43. context.netContext = new egret.HTML5NetContext();
  44. setStageSize();//调用上面写好的方法
  45. context.stage = new egret.Stage();
  46. var scaleMode = egret.MainContext.deviceType == egret.MainContext.DEVICE_MOBILE ?
  47. egret.StageScaleMode.SHOW_ALL : egret.StageScaleMode.NO_SCALE;
  48. context.stage.scaleMode = egret.StageScaleMode.SHOW_ALL;
  49. //WebGL is a Egret's beta property. It's off by default.
  50. //WebGL是egret的Beta特性,默认关闭
  51. var rendererType = 0;
  52. if (rendererType == 1) {// egret.WebGLUtils.checkCanUseWebGL()) {
  53. console.log("Use WebGL mode");
  54. context.rendererContext = new egret.WebGLRenderer();
  55. }
  56. else {
  57. context.rendererContext = new egret.HTML5CanvasRenderer();
  58. }
  59. egret.MainContext.instance.rendererContext.texture_scale_factor = 1;
  60. context.run();
  61. var rootClass;
  62. if(document_class){
  63. rootClass = egret.getDefinitionByName(document_class);
  64. }
  65. if(rootClass) {
  66. var rootContainer = new rootClass();
  67. if(rootContainer instanceof egret.DisplayObjectContainer){
  68. context.stage.addChild(rootContainer);
  69. }
  70. else{
  71. throw new Error("Document Class must be the subclass to egret.DisplayObjectContainer!");
  72. }
  73. }
  74. else{
  75. throw new Error("Document Class is not found!");
  76. }
  77. //处理屏幕大小改变
  78. //implement for screen size change
  79. var resizeTimer = null;
  80. var doResize = function () {
  81. context.stage.changeSize();
  82. resizeTimer = null;
  83. };
  84. window.onresize = function () {
  85. if (resizeTimer == null) {
  86. resizeTimer = setTimeout(doResize, 300);
  87. }
  88. };
  89. };