Egret Engine 3.0 包含了白鹭时代研发的遵循HTML5标准的2D引擎及全新打造的3D引擎,它解决了HTML5性能问题及碎片化问题,灵活地满足开发者开发2D或3D游戏的需求,并有着极强的跨平台运行能力。 下面介绍 Egret Engine 3.0.3 到 Egret Engine 3.0.4 之间的更新详情。 ### Egret Engine 2D 在 Egret Engine 2D 的 本次更新中,我们吸收开发者提供的反馈和建议,进一步稳定引擎并优化了一些体验。下面列出的是 3.0.3 到 3.0.4 的更新详情。 #### TypeScipt 1.8 本次更新将 Egret Engine 内部的 TypeScript 版本进行了升级。从原来的 TypeScript 1.7 版本升级到 TypeScript 1.8 版本。在新版的 TypeScitpt 中有几点需要我们注意. * 不允许在 super 调用之前使用 this 在使用新版的 TypeScript 引擎内,不允许在调用 super 之前使用 this,比如下面这样: ``` class TestBase { public constructor(num?:number) { console.log(num); } } class Test extends TestBase { public constructor() { super(this._num); //error } private _num:number = 1; } ``` 编译以上代码将报错,提示不能在 super 之前调用 this。 * 更严格的类型检查 在新的 TypeScipt 版本中,对类型检查更为严格。 ``` var test = [1,2,3,4,5,6,7]; for(var key in test) { console.log(key); //error } ``` 在以前的版本中是可以像上面这样做的。但是现在 for ... in 的语法中不可以使用强制转换的语法将 `key` 转换成 `number` 类型。如果需要的话可以先将`key`转换为`any`类型再进行类型转换。比如下面这样。 ``` for(var key in test) { console.log(key);//cool } ``` 更多关于 TypeScipt 1.8 的新特性可以关注 [What's new in TypeScript](https://github.com/Microsoft/TypeScript/wiki/What%27s-new-in-TypeScript) #### 获取声音长度 在 Egret Engine 2D 3.0.4 中,新增了一个 API ,用以获取当前播放声音的长度。通过获取 `egret.Sound`的 length 属性来获取当前播放声音的长度。需要注意的是该属性是只读的,我们并不能改变播放声音的长度。 更多教程参考:[声音系统](http://edn.egret.com/cn/docs/page/156) API 参考:[Sound](http://edn.egret.com/cn/apidoc/index/name/egret.Sound) #### DragonBones 在上一周更新了设计工具 DragonBonesPro 的 prerelease 版。新增了反向动力学约束(IK Constraint)支持和支持网格(Mesh)和自由变形动画(柔体动画)。 同时 DragonBones 的 API 也更新了相关内容,用以支持新特性。 DragoneBones 工具的使用教程:[IK约束](http://edn.egret.com/cn/docs/page/873) [网格](http://edn.egret.com/cn/docs/page/874) DragoneBones 相关代码使用教程计划近期更新。 DragonBones 的 API 参考:[DragonBones](http://localhost/cn/apidoc/index/name/dragonBones.Animation)