我们在今天发布 Egret 5.3.6 版本。Egret 5.3.6 仍然是一个抢先预览版,在这个版本中我们为各位开发者带来如下功能:
1、JavaScript模块支持;
2、全新的 EuiCompiler;
3、运行时改进;
4、Inspector更新。
其中 JavaScript模块支持和EuiCompiler我们建议正在开发中尚未上线的项目使用,运行时以及 Inspector 更新所有项目均可使用。
JavaScript模块支持,大幅改进编译速度(beta)
这项技术我们率先使用在EgretPro中,在这个版本我们将其移植到了Egret5.3版本中,以保证尽可能多的存量开发者可以使用此功能。
在不支持模块的老式浏览器中,如果一个JavaScript文件要想给另外一个文件暴露出去一部分数据或者一个变量,那只能将它定义在全局的作用域下,并根据他们的依赖关系来决定加载顺序。
白鹭引擎构建管线中的IncrementBuild插件将会分析您的游戏逻辑依赖关系,并生成一个manifest.json文件,游戏在调试时会加载这个manifest.json,根据其中的脚本顺序逐个加载JavaScript代码。
这种方式带来的问题是,随着项目不断变大,IncrementBuild插件的依赖关系检查会使游戏的编译速度会越来越慢,而JavaScript模块中,由于所有的依赖关系都是显式设置的,所以不存在此问题。
在5.3.6版本中,我们允许开发者使用JavaScript模块,并提供了webpack打包器,它会将多个JavaScript模块文件打包为一个文件,使得其可以在不支持JavaScript模块的旧式浏览器上运行。
经过与白鹭合作的开发者抢先测试,将一个代码总量20万行,包含1700个TypeScript文件的重度挂机游戏项目迁移至JavaScriptModule格式花费了一人一个星期时间,而这份投入非常的值得。经过开发者的实际反馈,在修改前编译速度大约为40秒一次,修改后仅需3-4秒,这可以为每位前端开发人员每天节省一小时的时间。
如果您对这项改动感兴趣,但是担心项目过大而感觉无从下手,可以联系白鹭引擎的官方技术支持(微信号:egretengine),寻求白鹭引擎官方团队的支持。
全新的EuiCompiler(beta)
在使用白鹭引擎开发的游戏中,UI以及相关逻辑是工作量最大的部分之一。在Egret5.3系列版本中,我们决定全面改进UI的开发体验。为此我们先是发布了全新的EgretUIEditor,并逐步迭代至1.9版本。除此之外,我们将在这个版本中为大家带来全新的EuiCompiler。
EuiCompiler是引擎中的ExmlPlugin的升级版本,他实现了和ExmlPlugin一致的功能,但是内部代码结构更加清晰并具备可扩展性。开发者可以扩展EuiCompiler,为其加入符合自己游戏需求的定制功能,诸如:浮点数值擦除,国际化语言包、资源文件检查等。
EuiCompiler的第一个版本暂时只支持发布为JavaScript格式的皮肤,我们后续将会为其添加JSON以及ArrayBuffer格式的皮肤支持。
运行时改进
除了JavaScript模块以及EuiCompiler带来的开发效率改进外,我们也对引擎的运行时进行持续优化,具体包括:
1、vivo小游戏平台支持小游戏引擎插件功能;;
2、修复部分设备浏览器上切换页面后,任意点击都会触发输入法的问题;
3、修复滤镜的父节点矩阵变化后,子节点显示异常问题;
4、修复ttf字体注册方法在EgretNative失效的问题;
5、修复EgretNative开启原生加速后,MovieClip生成的显示对象使用多滤镜渲染存在的错误;
6、修复5.3.5版本引擎在EgretNative上开启原生渲染后显示错位的问题。
Inspector改进
在这次更新中我们也更新了EgretInspector至3.5.1,版本。主要修复如下问题:
1、修复TOUCH_END事件不能触发的问题;
2、修复显示对象visible=false时,还能被选取的问题;
3、修复游戏的url路径中有特殊符号时,不能正确解析的问题。
后续更新
在这次版本发布后,白鹭引擎后续研发重点主要集中在如下几个方面:
1、EgretNative的使用体验;
2、在现有2D项目中更方便的引入3D内容;
3、EUI相关功能的进一步优化。
领取专属 10元无门槛券
私享最新 技术干货