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
以后使用要注意这个,有时候,某些应用场景下,会因为这个而纠结半天。
本文探讨了Flash中使用滤镜和颜色转换时内部对象复制的现象。指出Flash并不会直接使用提供的滤镜对象,而是创建其副本,这可能对内存管理和性能优化产生影响。
1487

被折叠的 条评论
为什么被折叠?



