UNPKG

dragonbones-runtime

Version:

the tools to build dragonbones file for diffrent framework

261 lines (143 loc) 7.58 kB
Egret EXP Release Note =============================== 最近更新时间:2015730日 欢迎您使用Egret ## 概述 Egret EXP 社区体验版是Egret引擎的一个社区体验版本。 EXP 表示 experience (体验) 和 extreme performance (极限性能) 在这个版本中,我们主要聚焦于实现一套全新的渲染引擎,使游戏的渲染性能得到提升。 EXP 版本,重点解决了几个开发者反馈较普遍的痛点需求,如: * 不规则遮罩 * Graphics 精确碰撞检测 * 精简入口逻辑 除此之外,EXP版本还解决了数个和 Flash 风格 API 调用行为不一致的问题 ## 更新内容 本次更新内容汇总了从引擎 2.0 到 新版本的的改动 ### 新增功能 * 自动脏矩形渲染,只有屏幕上的变化内容才会被重新渲染。 * DisplayObject 中 mask 同时支持 RectangleDisplayObject 类型参数 * 屏幕适配已支持旋转,并且可以指定横竖屏。 在 ```index.html```中修改 ```data-orientation="auto"``` 设置横竖屏,具体见 OrientationMode```data-content-width="480"``` 设置宽 ```data-content-height="800"``` 设置高 * 由于 TypeScript 中不支持调用父类属性的方式,因此新增加api用来调用父类的属性的方式。 egret.superSetter(this, "alpha", 1); 代替其他语言中的 super.alpha = 1; egret.superGetter(this, "alpha"); 代替其他语言中的 super.alpha * 新增Bitmap smoothing属性,设置后图片会有平滑处理 * 新增Bitmap pixelHitTest属性,设置后图片支持像素点碰撞。 ### 废弃接口 由于EXP版本的渲染引擎重构,以下 API 无法在新版本中支持。 * 废弃 DisplayObject```explicitWidth``` ```explicitHeight``` ```measuredHeight``` ```measuredWidth``` ```needDraw ```几个属性调用。 * 废弃 DisplayObject 中的相对锚点 ```anchorX``` ```anchorY```,如果想使用,请通过绝对锚点 ```anchorOffsetX``` ```anchorOffsetY``` 来实现。 * 废弃 DisplayObject```hitTest```方法,不再提供重写点击区域的判断,如果想调用点是否在DisplayObject内,请调用 hitTestPoint * 不能对Stage进行以下设置 ```alpha``````visible``````x``````y``````scaleX``````scaleY``````rotation``````cacheAsBitmap``````scrollRect``````filters``````blendMode``````touchEnabled``````matrix``` 除此之外我们废弃了一些不需要的和可以用其他方式实现的 API,保持 API 的精简。 * 废弃 Ticker```run``` ```setTimeScale``` ```getTimeScale``` ```pause``` ```resume``` 方法。 * 废弃 Event```ctrlKey``` ```altKey``` ```shiftKey``` 几个属性 ### API 变化 #### Graphics 碰撞检测区域变化 ##### 旧版本实现方式 完全矩形碰撞检测 ##### 新版本实现方式 根据具体的graphics图形进行检测 ##### 调整原因 旧版本实现不正确 ##### TouchEvent.dispatchTouchEvent 参数调整 ###### 旧版本参数 ``` target:IEventDispatcher, type:string, touchPointID:number = 0, stageX:number = 0, stageY:number = 0, ctrlKey:boolean=false, altKey:boolean=false, shiftKey:boolean=false, touchDown:boolean=false ``` ##### 新版本参数 ``` target:IEventDispatcher, type:string, bubbles?:boolean, cancelable?:boolean, stageX?:number, stageY?:number, touchPointID?:number, touchDown:boolean = false ``` ##### 调整原因 去掉 ```ctrlKey``` , ```altKey``` , ```shiftKey``` 这三个和移动设备无关的属性 #### TouchEvent.localX / TouchEvent.localY 返回结果变化 ##### 旧版本行为 返回基于 ```TouchEvent.currentTarget``` 的 localX / localY ##### 新版本行为 返回基于 ```TouchEvent.target``` 的 localX / localY ##### 调整原因 旧版本和 Flash API 实现不一致。 #### 显示 FPS API 修改 ##### 旧调用方式 调用 ```Profiler.getInstance().run()``` 来控制 FPS ##### 新调用方式```index.html``` 中设置 ```data-show-fps="true"``` 显示FPS 设置 ```data-show-fps-style="x:0,y:600,size:50,textColor:0xff0000"``` 修改FPS样式 ##### 调整原因 通过把显示FPS参数移动到 ```index.html``` 文件中,开发者可以更方便的动态根据版本 / 用户 / 白名单的手段为自己游戏添加帧频,而无需重新修改编译代码 #### 屏幕适配策略调整 ##### 旧版本实现 NO_SCALE 策略下,```stage.stageWidth ``````stage.stageHeight ``` 永远不变 NO_BORDER 策略下,竖屏游戏 ```stage.stageWidth ``` 不会变化,```stage.stageHeight ``` 会变化,横屏游戏相反 ##### 新版本实现 NO_SCALE 策略下,```stage.stageWidth ``````stage.stageHeight ``` 会根据浏览器窗口显示范围而变化 NO_BORDER 策略下,竖屏游戏 ```stage.stageWidth ``````stage.stageHeight ``` 不会变化,多出的部分会在显示范围外而被裁切 添加 FIXED_WIDTH 策略 和 FIXED_HEIGHT 策略,开发者如果之前使用了 NO_BORDER 策略,竖屏游戏请替换为 FIXED_WIDTH 策略,横屏游戏请替换为 FIXED_HEIGHT 策略 ##### 调整原因 NO_SCALENO_BORDERFlash API 不一致 ##### 纹理缩放实现修改 ##### 旧版本实现 修改 ```egret.MainContext.instance.rendererContext.texture_scale_factor``` 后,纹理和配置文件都需要进行修改 ##### 新版本实现 修改 ```egret.MainContext.instance.rendererContext.texture_scale_factor``` 后,只需修改纹理,无需修改配置文件 允许通过在 ```index.html``` 中设置 ```texture-scale-factor="2"``` 修改 ##### 调整原因 采用此种方法后,开发者只需要修改图片以及一个入口配置就可以实现纹理缩放功能。 #### 入口文件变化 ##### 旧版本实现``` egret_loader.js ``` 中设置各种属性 根据一个 ```egret_file_list.js``````game_file_list.js```设置加载内容 主 ```div``````<div style="position:relative;" id="gameDiv"></div>``` ##### 新版本实现``` index.html ``` 中设置各种属性 在构建后,在 ```index.html``` 生成需要加载的 js 文件的 script 标签 主 ```div`````` <div id="egret-sample" style="margin: auto;width: 100%;height: 100%;" class="egret-player" data-entry-class="Main" data-scale-mode="showAll" data-orientation="auto" texture-scale-factor="1" data-orientation="portrait" data-content-width="480" data-content-height="800" data-show-paint-rect="false" data-show-fps="true" data-show-fps-style="x:0,y:0,size:24,textColor:0xffffff" data-show-log="false" data-log-filter=""> </div> ``` ##### 调整原因 精简入口逻辑。 由于改动较大,建议开发者在迁移老项目时,先创建一个新项目,然后把所有代码拷贝至新项目中。 #### 其他变化 * 容器的空白区域将不能点击。 * 多指触摸设置调用变化。由 设置 TouchContext.maxTouches 变成 设置 stage.maxTouches 默认值从2调整为99 #### 路线图 * 添加对 Egret Runtime 的支持 * 添加对 WebGL 的支持 * 添加滤镜功能 #### 注意 * 如果调用过引擎内部的方法或者属性,请自行查找最新对应的方法或者属性。 * 所有以 ```_``` 前缀的内部方法被调整为 ```$``` 前缀。