Egret Engine 3.0 包含了白鹭时代研发的遵循HTML5标准的 2D 引擎及全新打造的 3D 引擎,它解决了 HTML5 性能问题及碎片化问题,灵活地满足开发者开发 2D 或 3D 游戏的需求,并有着极强的跨平台运行能力。 ## Egret Engine 2D 在本次更新 Egret Engine 2D 中,调整了 FPS 面板样式,输入文本支持设置弹出键盘类型,HttpRequest 支持发送 ArrayBuffer 类型数据,并增加了鼠标事件支持扩展库。同时也修复了若干问题,下面是 3.1.1 到 3.1.2 的更新详情。 ### 调整 FPS 面板样式 工欲善其事必先利其器,在 Egret 项目开发过程中 FPS 面板一直是非常重要的调试工具。在 Egret Engine 最新发布的 3.1.2 中提供了新的调试面板。可以更加直观方便的显示调试信息。 ![](575e7da5ac883.gif) #### 图形显示--更加直观方便 新的 FPS 面板最直观的改变时提供了 FPS 图形显示。与之前的纯数字显示不同,FPS 和 Cost 信息提供了曲线面板的显示。 先来回顾一下 FPS 和 Cost 值所代表的含义。FPS 即帧频,每帧屏幕刷新的次数。在游戏中 FPS 是一个动态的值,帧频的高低反应着游戏的流畅度,比如一直保持 60 帧每秒的帧频,游戏是非常流畅的,如果在某个场景或某个时刻帧频突然降低,说明这里存在问题需要优化。新的 FPS 面板能很好的体现出帧频的变化曲线,曲线的纵轴显示的是帧频的高低,横轴表示时间,FPS 窗口表示时间段内帧率的变化,而原有的 FPS 面板只能显示当前时刻数据。 Cost 的三个值分别表示 Ticker 和 EnterFrame 阶段显示的耗时,每帧舞台所有事件处理和矩阵运算耗时和绘制显示对象耗时(单位是ms),在新的 FPS 面板中也使用图形表示,可以查看当前窗口内消耗的变化。 #### 更详细的信息 在新的 FPS 面板中提供了更丰富的调试信息。首先除了原有的帧率显示外提供了渲染模式的显示,可以看到当前的渲染模式时 Canvas 还是 WebGL 模式。 提供了 FPS 的最大,最小和平均信息。可以很好的获得当前 FPS 信息的简单统计,对游戏中帧数变化有更明确的显示。 #### 其他 新的面板是绘制在一个单独的 div 标签内,不再随引擎的缩放模式而改变大小,这样就可以保证文字的清晰度始终是一致的。 需要注意的是在老项目中使用性能监控面板,建议您在 index.html 中修改一下文字大小和配色方案。 在 IE11 以下的浏览器中,FPS 面板会遮挡舞台,触摸事件无法穿透,建议您调试的时候使用 Chrome 浏览器。 更多关于调试面板的教程参考:[新的 FPS 面板](http://edn.egret.com/cn/docs/page/1024) 和 [如何开启 FPS 面板](http://edn.egret.com/cn/docs/page/605) ### 输入文本支持设置弹出键盘类型 在 Egret 3.1.2 中更新了设置输入文本样式,现在支持 3 中输入样式即普通文本(默认),密码和电话号。设置不同的类型输入的样式和手机上弹出面板是不同的。设置密码样式输入时显示密码,设置电话号样式输入时在手机上弹出数字输入面板。 设置输入文本样式首先要设置 TextField 的 TextFieldType 为 INPUT 类型。然后设置 TextField 的 inputType 即可。 ``` var text:egret.TextField = new egret.TextField(); //设置输入文本 text.type = egret.TextFieldType.INPUT; //设置输入类型为 TEXT,还可设置为密码(PASSWORD)或电话号(TEL) text.inputType = egret.TextFieldInputType.TEXT; text.text = "输入文本:"; text.width = 300; this.addChild(text); ``` ![](575e7da5c32aa.png) 设置不同的输入文本样式,不同效果如上图所示,可以看到在文本样式下弹出默认输入法,在密码样式下弹出英文输入法,在电话号样式下弹出数字输入。 更多关于输入文本的教程:[输入文本](http://edn.egret.com/cn/docs/page/292) ### HttpRequest 支持发送 ArrayBuffer 类型数据 HttpRequest 新增支持发送 ArrayBuffer 类型的数据,在 POST 请求中可以直接发送 ArrayBuffer 类型的数据。 ``` var buffer = new ArrayBuffer(12); var x = new Int32Array(buffer); x[1] = 1234; var httpRequest = new egret.HttpRequest(); httpRequest.open("http://httpbin.org/post",egret.HttpMethod.POST); httpRequest.send(buffer); ``` 发送 ArrayBuffer 类型数据与其他数据相同,直接将数据传入 send() 方法内即可。 更多关于 HttpRequest 的教程:[发送HTTP请求](http://edn.egret.com/cn/docs/page/589) ### 增加 PC 鼠标事件支持第三方库 随着新版本的引擎发布,[Egret Game Library](https://github.com/egret-labs/egret-game-library)更新了鼠标事件支持库,[鼠标事件支持库](https://github.com/egret-labs/egret-game-library/tree/master/mouse),引用鼠标支持库即可监听 PC 上的鼠标事件。鼠标支持库支持鼠标移动,悬停,移出等多个事件。同时也可设置鼠标手型。 获取鼠标事件支持库:[鼠标事件支持库](https://github.com/egret-labs/egret-game-library/tree/master/mouse) 关于鼠标事件支持库的使用教程:[鼠标支持库](http://edn.egret.com/cn/docs/page/1026) ### 修复问题 * 修复 WebGL 绘制矢量图形可能错乱问题。 * 修复对容器设置滤镜引发脏矩形绘制错误问题。 * 修复不规则遮罩在 native 显示异常问题。 * 修复 ProgressBar 布局错误问题。 * 修复在 Wing 中构件项目经常报错问题。 * 修复 RenderTexture 绘制之后显示对象属性设置无效问题。 * 优化对容器设置滤镜渲染。 ### 获取 Egret Engine Windows 安装包下载地址:[点击这里](http://tool.egret-labs.org/EgretEngine/EgretEngine-v3.1.2.exe) Mac 安装包下载地址:[点击这里](http://tool.egret-labs.org/EgretEngine/EgretEngine-v3.1.2.dmg) Egret Engine 2D 源码地址:[点击这里](https://github.com/egret-labs/egret-core/tree/v3.1.2) Egret Engine 3D 源码地址:[点击这里](https://github.com/egret-labs/egret-3d/tree/rc/3.1.2)