Egret 1.5.3 Release Note
===============================


最近更新时间：2015年1月23日


欢迎您使用Egret

特别鸣谢：

* 墨麟集团-武汉鱼之乐信息技术有限公司
* 南京泥巴怪网络科技有限公司
* 北京小苹果网络科技有限公司
* 小米互娱-米聊团队
* 梦启（北京）科技有限公司
* 欢聚时代游戏事业部-前端技术组
* 北京多放辣椒网络科技有限责任公司
* 开心网开腾工作室

## 概述

Egret 1.5.3 社区体验版是一个针对Egret引擎双周迭代改良后的第三个社区体验版本。在这个版本中，我们主要聚焦于MovieClip模块的重构以及部分bug修复。

注：社区体验版里包含了之前Final版本的所有功能，也会加入引擎最新的一些功能实现。如1.5.3社区体验版包含了1.5的功能，加入了新的功能，也对1.5的问题做了修正，1.5.3的新功能经过数次的版本迭代趋于稳定后，将会被合并进入下一个Final版本。如开发者将游戏用于production环境，推荐使用Final版本；如果希望第一时间体验功能，推荐使用社区体验版。

## 更新内容


#### 核心显示列表

* 修复 BitmapFont 第一次返回首字符高度为0的问题
* 修复 DisplayObjectContainer 中 addChild 方法可能错乱问题
* 增加RES.parseConfig()接口，允许运行时动态生成资源配置文件
* [MovieClip架构重新设计](#MovieClip)



#### GUI体系

* 修复 BitmapLabel 在 font 属性改变后没有标记失效的问题
* 解决 Scroller 触摸区域超出 Scroller 尺寸范围的bug


#### 命令行工具
* 增加egret build命令检查重复的类定义
* 修复 create_manifest 报错问题


#### Egret Android Support

* 增加WebView支持
* 更稳定的生命周期管理
* 更全面的错误日志
* 提高下载速度
* 增加对gif图的支持。只能显示第一帧。
* 修正DesignSize点到物理屏幕点计算错误的bug
* 特定分辨率上触摸不准确的bug
* 修正网络超时的设置
* 修复https无法下载的问题


#### 已知问题

* Android Graphics API 目前只支持简单的画线操作
* Android TextField API 目前不支持加粗和斜体
* Android RenderTexture 尚未实现
* iOS Support 目前只支持 iOS7+ 的版本


<a name="MovieClip"></a>
#### MovieClip架构重新设计
* 全新的数据格式，支持多个swf打包到一个数据文件中。具体参考[这里](http://bbs.egret-labs.org/thread-918-1-1.html)
* 全新的MovieClip架构,结构上分为MovieClip, MovieClipData, MovieClipDataFactory，三部分
* MovieClip的API及功能基本仿照flash.display.MovieClip.具体参见API Spec.
* MovieClip的创建需要提供MovieClipData实例
* MovieClipData是对MovieClip所用数据的封装，相当于flash中的SpriteSymbol(swf的数据封装). MovieClipData 能够由MovieClipDataFactory生成
* MovieClipDataFactory 负责管理由TextureMerge生成的MovieClip数据集文件，根据MovieClip名称生成MovieClipData

#### MovieClip和之前版本功能上的区别
* 播放控制接口更加人性化，支持传入帧序号和帧标签
* 支持循环播放，在每次循环结束后会抛出Event.LOOP_COMPLETE事件，在播放完成后会抛出Event.COMPLETE事件
* 去掉了自定义事件的支持。如果您需要自定义事件或者其他功能的支持，请在论坛里提需求，我们可以在后续版本加入
* 注意：为了避免可能的内存泄漏问题，MovieClip只有被加到stage上之后才能被正确的播放!如果您需要不在stage上的Movie也能够正常播放，请在论坛里提需求，我们可以在后续版本加入

#### MovieClip迁移手册
1.升级数据文件
新的MovieClip不兼容老的数据格式，所以迁移的第一步是升级数据文件。您需要下载最新的TextureMerger,找到原始的swf文件并拖到TextureMerger中，重新导出数据文件和纹理文件，并替换工程中老的文件。

2.修改创建MovieClip的代码：
MovieClip改为通过接收MovieClipDataFactory生成的MovieClipData来创建。<br>
请将类似如下的代码 var mc = new egret.MovieClip(data, texture);<br>
改为<br>
var mcDataFactory = new egret.MovieClipDataFactory(data, texture);<br>
var mc= new egret.MovieClip(mcDataFactory.generateMovieClipData());

3.将部分API调用修改为属性访问<br>
请将类似如下的方法调用改为访问相应的属性<br>
mc.getCurrentFrameIndex() -> mc.currentFrame<br>
mc.getTotalFrame() -> mc.totalFrames<br>
mc.setInterval(value) -> mc.frameRate = 1000/value<br>
mc.getIsPlaying() -> mc.isPlaying<br>

4.删除dispose和release的方法调用<br>
请将类似如下的代码删除：<br>
mc.dispose()<br>
mc.release()<br>