News:Starling1.4RC

来自Starling中文站
跳转到: 导航, 搜索

目录

Starling 1.4候选发布版

原文:http://forum.starling-framework.org/topic/starling-14-release-candidate

嘿,伙计们,

你们可能已经注意到,最近我一直忙于Starling框架,包括关闭Bug,优化性能和增加新的功能。这就意味着,Starling的下一个版本就要出炉了!

我知道你们中的很多人已经在使用新的版本了,所以我估计它现在运行的还不错,当然如果你们都使用新的版本并且运行正常,能给我一个反馈的话就再好不过了。

女士们,先生们,请拭目以待:下面的列表说明了新版相对于旧版来说最重要的一些变化!

优化处理上下文丢失时的内存占用

在所有的设备上(除了苹果),你必须激活"Starling.handleLostContext",以确保你的游戏不会在系统渲染时丢失上下文(无论何种原因)。之前的Starling版本,保留了内存中的纹理数据,以便在上下文丢失的时候进行恢复。

而新的Starling版本,将换个策略:从素材来源中载入纹理--需要你使用"AssetManager"类。如果你使用的自己的素材加载机制,可以通过texture.root.onRestore的回调来重载你的纹理。

这就意味着,在新版的内存消耗会减少50%左右。这个节省非常有意义,特别是在移动设备上。

使用ByteArray来代替Vector优化渲染

关于这个优化的过程,可以参阅这个故事。简而言之,这会提升20%-25%的渲染速度!

不足之处是一个小的API变更。如果你编写了自定义的渲染代码(或者用了一个库来实现),你需要在你的代码中做两处小的变更(参阅上面那个链接)。在任何情况下,这些API变化是非常简单的,所以你可以很快的更新现有的代码。

Sprite的新"clipRect"属性

现在,你可以在Sprite上使用一个矩形遮罩。新的"clipRect"属性可以设置任何矩形,只有这个矩形内的内容才会被绘制。这个功能棒的地方在于,你可以使用这种类型的遮罩,而不必担心性能受到影响。

新的DisplacementMapFilter滤镜

这是一个新的漂亮的滤镜,和Flash原生的那个功能类似。它可以做非常漂亮的特效,比如这个,而且是渲染在GPU上。

iOS上减少的内存分配

一些方法调用(比如Array.push)分配对象,在iOS上有副作用。在Adobe Scout软件的帮助下,我跟踪了内存分配过程,以确保他们降低到最低限度。这意味着更少的GC调用。

其他变化包括

  • 支持"HiDPI"高清显示(MacBook的视网膜屏幕)
  • 支持在AIR3.8中引入的RectangleTextures(自动在幕后工作)
  • 新ATF文件格式的支持(在AIR3.8中的变化)
  • AssetManager支持通用的XML,JSON或ByteArray数据
  • 增加了“TextField.autoSize',这将根据其内容计算一个文本字段的大小
  • 增加'Stage.drawToBitmapData'方便捕捉截图
  • 加入'QuadBatch.batchable',允许分批QuadBatches(用于小QuadBatches)
  • 修复Windows8多点触摸的Bug
  • 修复'DisplayObjectContainer.sortChildren()'使用了不稳定的排序算法
  • 优化ENTER_FRAME事件广播,它现在比以前更快
  • 优化变换矩阵计算

当然,完整的更新日志可以从这里找到

如果没有Starling社区的帮助(包括错误报告,提供反馈和需求提交),新版本就不会发布---感谢你们持续的支持。

你可以从GitHub获得最新的版本,包括git源zip文件。如果你喜欢用swc,最新的版本已经包含了这个文件。

期待你的反馈!


8.28日志

原文:http://forum.starling-framework.org/topic/starling-14-release-candidate-2

虽然我很想在本周发布最终版本,但现在我不得不再增加一个候选版本,因为突然出现了一个意想不到的问题。

这个问题涉及到我之前做的用ByteArray实现的性能优化。原来在AS3中,ByteArrays的分配内存块为4KB - 也就是说:每个ByteArray实例占用至少4KB。因为我需要使用很多ByteArray实例(即使每个ByteArray我只需要20字节),这增加了很多的内存占用量,导致应用程序在一些旧的硬件上崩溃。

虽然有办法解决这个问题(实在搞不懂Adobe为什么这样实现),而且我已经在考虑怎么解决,但是我不希望因为这个原因再次推迟版本发布,因为:1,没有使用ByteArray的事件,依然比之前的版本快很多,2,人们不应该为无预期的增加新特性和bug修复等待太长时间。

总而言之,这不算是个大问题,我想Starling 1.4仍然会尽快的释放的!

但是我要抱歉的是,你们如果已经做了对ByteArray的兼容,现在要恢复回去了。我没有别的选择了,还请谅解。我会在Starling 1.5的版本中重新启用ByteArray。现在,如果你能继续帮我测试第二个候选版本的话,我会非常感激!

从第一个RC之后,我做了一些小的改进:

  • 增加了Event.TEXTURES_RESTORED事件,AssetManager上下文丢失后调用
  • 在QuadBatch中增加'transformQuadAt'方法
  • 更新Starling的ASDoc数据
  • AssetManager修复UTF-8/16/32编码问题
  • 修复有时裁剪矩形没有相交导致的一个错误

像以前一样,候选发布版可以从GitHub上(资料库zip文件)找到,包括更新的SWC文件。

现在我将进入两个星期的假期!如果该版本一切都很好,等我回来的时候,就会发布这个版本!


翻译:郭少瑞

个人工具
名字空间

变换
操作
导航
Starling中文资料
Starling原创教程
论坛
友链
工具箱