AS3 - 使用代码将元件或图片灰化,还原颜色
在Flex/Flash开发中,有时需要在代码中动态的将图片或元件变灰,同时也可以动态的恢复回原来的颜色。
代码如下:

/** * 灰化元件 */ public static function toGrayScale(obj:DisplayObject):void{ var matrix:Array = [0.3, 0.59, 0.11, 0, 0, 0.3, 0.59, 0.11, 0, 0, 0.3, 0.59, 0.11, 0, 0, 0, 0, 0, 1, 0]; var grayscaleFilter:ColorMatrixFilter = new ColorMatrixFilter(matrix); obj.filters = [grayscaleFilter]; } /** * 恢复颜色 */ public static function toOriginalColors(obj:DisplayObject):void{ var matrix:Array = [1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0]; var originalFilter:ColorMatrixFilter = new ColorMatrixFilter(matrix); obj.filters = [originalFilter]; }效果图如下:
