Skip to content

Egret_Upgrade

WanderWang edited this page Sep 26, 2014 · 14 revisions

升级 Egret 到 1.1.0 版本

改动日志

  • index.html 中去掉了 canvas 节点,现在 canvas节点是在 HTML5CanvasRenderer以及WebGLRenderer中生成。
  • egret_loader 中去掉了 var canvas = document.getElementById("gameCanvas") 以及canvas相关代码。
  • 游戏主 canvas的id被修改为了 egretCanvas

升级步骤

  • 执行 egret upgrade 命令(如果已经执行过,请继续完成剩余步骤)。

  • 执行 egret upgrade 命令后,launcher 中的 index.html 和 egret_loader.js文件会被自动修改,同时原来的对应文件会被备份为 copy_index.htmlcopy_egret_loader.js ,开发者完成升级步骤之后,应手动将这些备份文件删除

  • 请检查html部分是否被修改。左边为原图,右边为修改后的图。

在多数情况下,这个过程是自动完成的,开发者只需要确认结果是否正确即可 如果您项目原来在gameDiv中加入了其他的标签,请从副本中取出放到gameDiv标签的外面。

  • 舞台被还原为480 * 800,请从副本中取出原来使用的值并修改(如果项目是480 * 800则跳过此步)。

  • 适配策略被还原为默认策略,请从副本中取出原来使用的适配策略代码并修改。

如果您项目中原来使用的“new egret.FixedWidth()”、“new egret.NoScale()”等旧适配策略,请按“egret_loader.js”最新的适配策略修改。

  • 再次编译一下项目 egret build {your_project} -e

{ your_project } 指的是你的项目名

举例,开发者的项目名为 HelloEgret ,那这里要输入 egret build HelloEgret -e ,而不是 egret build { HelloEgret } -e

  • 项目验证没问题后请删除副本文件。

注意事项

  • 执行egret upgrade 命令后,html文件内的gameDiv将会被替换成一个简单的div,原来的html会保存在对应的"copy_name.html"副本中;egret_loader.js将会被替换成最新版本的,原egret_loader.js代码保存在"copy_egret_loader.js"副本中。

下图为生成的各个副本文件

  • 如果项目中使用到了canvas.width、canvas.height,请使用 egret.MainContext.instance.stage.stageWidth和 egret.MainContext.instance.stage.stageHeight代替

  • 如果项目中是以DOM方式渲染,请使用最新DOM的第三库。并修改成 context.rendererContext = new egret.HTML5DOMRenderer();

    不再需要egret.dom.initStage(context.stage);

  • 如果游戏显示底部有部分不显示,请去掉body的overflow的样式。

  • 由于 canvas的id进行了修改,如果开发者之前有 document.getElementById("gameCanvas") 的写法,请改为 document.getElementById("egretCanvas")

  • 如果经过上述步骤,无论如何都无法升级成功,请使用 egret create 创建一个新项目,并将代码和资源复制到新项目中