可视对象使用滤镜时会在内部创建滤镜对象的副本

var glow:GlowFilter = new GlowFilter();
this.filters = [glow];
trace(glow === this.filters[0]); // false

从以上代码可以看出,Flash Player 的可视对象使用滤镜时会在内部创建滤镜对象的副本,并不会引用你传进去的滤镜对象。本以为,滤镜对象可重复利用,以减少内存消耗,可惜内部还是自建了滤镜对象的副本。同样地,ColorTransform的情况也一样(猜测还有很多情况也是这样):

var clr:ColorTransform = new ColorTransform();
this.transform.colorTransform = clr;
trace(clr === this.transform.colorTransform); // false

以后使用要注意这个,有时候,某些应用场景下,会因为这个而纠结半天。

Play game now!

posted @ 2012-07-08 15:01  FancyBit  阅读(178)  评论(1编辑  收藏  举报