/** * Copyright (c) 2014,Egret-Labs.org * All rights reserved. * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the name of the Egret-Labs.org nor the * names of its contributors may be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY EGRET-LABS.ORG AND CONTRIBUTORS "AS IS" AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL EGRET-LABS.ORG AND CONTRIBUTORS BE LIABLE FOR ANY * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ egret_h5.startGame = function () { var wid = document.documentElement.clientWidth; var hei = document.documentElement.clientHeight; var bet=1;//iphone系列比较特殊,尺寸需要翻倍 switch(wid){ case 320://iphone4\5 bet = 2; break; case 375://iphone 6 bet = 2; break; case 414://iphone 6+ bet = 3; break; default : bet =1; break; } wid *= bet; hei*= bet; var gW = GameData.GameWidth; var gh = GameData.GameHeight; var _scale = 1; var scale_1 = 640 / 916; var scale_2 = scale_1/(wid / hei); if(wid < hei){ // 竖屏 _scale = gW / wid; gh = _scale * hei; if(wid > 750){ if(gh < GameData.limitH2){ gh = GameData.limitH2; } }else{ if(gh < GameData.limitH1){ gh = GameData.limitH1; if(scale_1 < 1){ gh += Math.floor(scale_1*20); } } } GameData.GameHeight = gh; }else{ } var s = 'w:'+wid+" h:"+hei+'gh'+gh+'GameData.limitH1'+GameData.limitH1 + '_scale' + _scale + 'scale_2' + scale_2 // alert(s); // console.log(s); var context = egret.MainContext.instance; context.touchContext = new egret.HTML5TouchContext(); context.deviceContext = new egret.HTML5DeviceContext(60); context.netContext = new egret.HTML5NetContext(); //egret.StageDelegate.getInstance().setDesignSize(480, 800); egret.StageDelegate.getInstance().setDesignSize(GameData.GameWidth, GameData.GameHeight); context.stage = new egret.Stage(); var scaleMode = egret.MainContext.deviceType == egret.MainContext.DEVICE_MOBILE ? egret.StageScaleMode.SHOW_ALL : egret.StageScaleMode.NO_SCALE; context.stage.scaleMode = scaleMode; //WebGL是egret的Beta特性,默认关闭 var rendererType = 0; if (rendererType == 1) {// egret.WebGLUtils.checkCanUseWebGL()) { context.rendererContext = new egret.WebGLRenderer(); } else { context.rendererContext = new egret.HTML5CanvasRenderer(); } egret.MainContext.instance.rendererContext.texture_scale_factor = 1; context.run(); var rootClass; if(document_class){ rootClass = egret.getDefinitionByName(document_class); } if(rootClass) { var rootContainer = new rootClass(); if(rootContainer instanceof egret.DisplayObjectContainer){ context.stage.addChild(rootContainer); } else{ throw new Error("文档类必须是egret.DisplayObjectContainer的子类!"); } } else{ throw new Error("找不到文档类!"); } //处理屏幕大小改变 var resizeTimer = null; var doResize = function () { context.stage.changeSize(); resizeTimer = null; }; window.onresize = function () { if (resizeTimer == null) { resizeTimer = setTimeout(doResize, 300); } }; };