News:Starling New Filters

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

http://forum.starling-framework.org/topic/new-feature-filters

伙计们,

上个周我一直没在论坛露面,非常抱歉!不过这样做确实有个很好的理由:我终于完成了一个新特性:滤镜!

而现在,让我们一起来玩玩儿这个新特性吧。

只要将Starling的代码更新到最新的版本,您就会发现在显示对象上增加了一个新的属性:"filter"。您可以给它附加任何已经提供好的简单滤镜(在"starling.filters"包中)。

这些是已经可用的滤镜:

  • - "IdentityFilter" - 什么都不做,其实目的是让您了解如何创建自己的滤镜
  • - "InverseFilter" - 反转颜色
  • - "GrayscaleFilter" - 灰度滤镜
  • - "ColorMatrixFilter" - 就像Flash提供的那个一样
  • - "BlurFilter" - 就像Flash提供的那个一样

要创建一个阴影滤镜,请调用 "BlurFilter.createDropShadow()";要创建一个发光滤镜,请调用"BlurFilter.createGlow()"。

这个滤镜的架构是非常好的,您可以很方便的创建自己的滤镜。实际上,我认为这是一个非常好的学习AGAL的方式!看看 "IdentityFilter" 和 "InverseFilter"这两个类吧,您就会了解自己该怎么做:实际上您只需要覆盖其中的两个方法。

要注意目前的模糊滤镜有一个问题:您必须在"baseline"模式下运行Starling(Starling 1.2 的默认值是 "baselineConstrained")。在之前的AIR测试版中这是可以工作的,所以我认为我的代码应该可以在这个模式下工作,我需要做进一步的检查。在此期间,您只能在"baseline"模式下做测试。

在未来,我将实现几个滤镜的组合方式。(例如一个对象既有模糊,又有灰度)。敬请关注!

关于性能:滤镜的运算是非常快的,但是它总是会增加额外的绘制调用次数,以及他们需要额外的纹理内存。因此,至少在移动设备上,您需要小心使用。不过在台式电脑上,不必害羞,尽情使用吧[;-)]

更新: 我添加了一个滤镜效果的展示图片:

https://dl.dropbox.com/u/60976364/2012-08-27-starling-filters.png


翻译:郭少瑞

个人工具
名字空间

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