flash.geom
public class ColorTransform
继承ColorTransform Inheritance Object

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

可使用 ColorTransform 类调整显示对象的颜色值。可以将颜色调整或颜色转换应用于所有四种通道:红色、绿色、蓝色和 Alpha 透明度。

当 ColorTransform 对象应用于显示对象时,将按如下方法为每个颜色通道计算新值:

如果计算后任何一个颜色通道值大于 255,则该值将被设置为 255。如果该值小于 0,它将被设置为 0。

可以通过下列方式使用 ColorTransform 对象:

必须使用 new ColorTransform() 构造函数创建 ColorTransform 对象后,才能调用 ColorTransform 对象的方法。

颜色转换不会应用于影片剪辑(如加载的 SWF 对象)的背景色, 它们仅应用于附加到影片剪辑的图形和元件。

查看示例

另请参见

flash.geom.Transform
flash.display.DisplayObject.transform
flash.display.BitmapData.colorTransform()


公共属性
 属性定义方
  alphaMultiplier : Number
与 Alpha 透明度通道值相乘的十进制值。
ColorTransform
  alphaOffset : Number
-255 到 255 之间的数字,它先与 alphaMultiplier 值相乘,再与 Alpha 透明度通道值相加。
ColorTransform
  blueMultiplier : Number
与蓝色通道值相乘的十进制值。
ColorTransform
  blueOffset : Number
-255 到 255 之间的数字,它先与 blueMultiplier 值相乘,再与蓝色通道值相加。
ColorTransform
  color : uint
ColorTransform 对象的 RGB 颜色值。
ColorTransform
 Inheritedconstructor : Object
对类对象或给定对象实例的构造函数的引用。
Object
  greenMultiplier : Number
与绿色通道值相乘的十进制值。
ColorTransform
  greenOffset : Number
-255 到 255 之间的数字,它先与 greenMultiplier 值相乘,再与绿色通道值相加。
ColorTransform
 Inheritedprototype : Object
[静态] 对类或函数对象的原型对象的引用。
Object
  redMultiplier : Number
与红色通道值相乘的十进制值。
ColorTransform
  redOffset : Number
-255 到 255 之间的数字,它先与 redMultiplier 值相乘,再与红色通道值相加。
ColorTransform
公共方法
 方法定义方
  
ColorTransform(redMultiplier:Number = 1.0, greenMultiplier:Number = 1.0, blueMultiplier:Number = 1.0, alphaMultiplier:Number = 1.0, redOffset:Number = 0, greenOffset:Number = 0, blueOffset:Number = 0, alphaOffset:Number = 0)
用指定的颜色通道值和 Alpha 值为显示对象创建 ColorTransform 对象。
ColorTransform
  
将 second 参数指定的 ColorTranform 对象与当前 ColorTransform 对象连接,并将当前对象设置为结果,即两个颜色转换的相加组合。
ColorTransform
 Inherited
指示对象是否已经定义了指定的属性。
Object
 Inherited
指示 Object 类的实例是否在指定为参数的对象的原型链中。
Object
 Inherited
指示指定的属性是否存在、是否可枚举。
Object
 Inherited
设置循环操作动态属性的可用性。
Object
  
设置字符串格式并将其返回,该字符串描述 ColorTransform 对象的所有属性。
ColorTransform
 Inherited
返回指定对象的原始值。
Object
属性详细信息
alphaMultiplier属性
public var alphaMultiplier:Number

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

与 Alpha 透明度通道值相乘的十进制值。

如果您使用 DisplayObject 实例的 alpha 属性直接设置显示对象的 Alpha 透明度值,它将影响该显示对象的 transform.colorTransform 属性的 alphaMultiplier 属性的值。

另请参见

alphaOffset属性 
public var alphaOffset:Number

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

-255 到 255 之间的数字,它先与 alphaMultiplier 值相乘,再与 Alpha 透明度通道值相加。

blueMultiplier属性 
public var blueMultiplier:Number

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

与蓝色通道值相乘的十进制值。

blueOffset属性 
public var blueOffset:Number

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

-255 到 255 之间的数字,它先与 blueMultiplier 值相乘,再与蓝色通道值相加。

color属性 
color:uint  [读写]

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

ColorTransform 对象的 RGB 颜色值。

设置此属性时,会相应地更改三种颜色的偏移量值(redOffsetgreenOffsetblueOffset),并将这三个颜色乘数值(redMultipliergreenMultiplierblueMultiplier)设置为 0。Alpha 透明度乘数和偏移量值不变。

在传递此属性的值时,请使用格式 0x RRGGBBRRGGBB 均包含两个十六进制数字,这些数字指定每个颜色成分的偏移量。ActionScript 编译器从 0x 获知数字是十六进制值。



实现
    public function get color():uint
    public function set color(value:uint):void
greenMultiplier属性 
public var greenMultiplier:Number

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

与绿色通道值相乘的十进制值。

greenOffset属性 
public var greenOffset:Number

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

-255 到 255 之间的数字,它先与 greenMultiplier 值相乘,再与绿色通道值相加。

redMultiplier属性 
public var redMultiplier:Number

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

与红色通道值相乘的十进制值。

redOffset属性 
public var redOffset:Number

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

-255 到 255 之间的数字,它先与 redMultiplier 值相乘,再与红色通道值相加。

构造函数详细信息
ColorTransform()构造函数
public function ColorTransform(redMultiplier:Number = 1.0, greenMultiplier:Number = 1.0, blueMultiplier:Number = 1.0, alphaMultiplier:Number = 1.0, redOffset:Number = 0, greenOffset:Number = 0, blueOffset:Number = 0, alphaOffset:Number = 0)

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

用指定的颜色通道值和 Alpha 值为显示对象创建 ColorTransform 对象。

参数
redMultiplier:Number (default = 1.0) — 红色乘数的值,在 0 到 1 范围内。
 
greenMultiplier:Number (default = 1.0) — 绿色乘数的值,在 0 到 1 范围内。
 
blueMultiplier:Number (default = 1.0) — 蓝色乘数的值,在 0 到 1 范围内。
 
alphaMultiplier:Number (default = 1.0) — Alpha 透明度乘数的值,在 0 到 1 范围内。
 
redOffset:Number (default = 0) — 红色通道值的偏移量,在 -255 到 255 范围内。
 
greenOffset:Number (default = 0) — 绿色通道值的偏移量,在 -255 到 255 范围内。
 
blueOffset:Number (default = 0) — 蓝色通道值的偏移量,在 -255 到 255 范围内。
 
alphaOffset:Number (default = 0) — Alpha 透明度通道值的偏移量,在 -255 到 255 范围内。
方法详细信息
concat()方法
public function concat(second:ColorTransform):void

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

second 参数指定的 ColorTranform 对象与当前 ColorTransform 对象连接,并将当前对象设置为结果,即两个颜色转换的相加组合。在应用级联的 ColorTransform 对象时,其效果与在原始颜色转换后应用 second 颜色转换的效果相同。

参数

second:ColorTransform — 要与当前 ColorTransform 对象合并的 ColorTransform 对象。

toString()方法 
public function toString():String

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

设置字符串格式并将其返回,该字符串描述 ColorTransform 对象的所有属性。

返回
String — 用于列出 ColorTransform 对象的所有属性的字符串。
示例 如何使用示例
ColorTransformExample.as

下面的示例使用 TransformExample 类在以渐变图案填充的正方形中创建简单的 sprite。每次用户单击正方形时,应用程序都将转换正方形 sprite 的颜色,同时添加到红色通道并加亮蓝色通道。这是由以下步骤完成的:
  1. 构造函数创建一个新的 sprite 对象 target
  2. CustomButton() 构造函数调用 draw() 方法,该方法在 sprite 中绘制一个渐变正方形。
  3. CustomButton() 构造函数为 sprite 添加 click 事件侦听器,该侦听器由 clickHandler() 方法处理。
  4. clickHandler() 方法中,两个属性被设置为当前颜色转换的 redOffsetblueOffset 属性。 将每项的值调整 25。然后修改正方形 sprite 的 transform.colorTransform 属性,以使用新的偏移量值。每次用户单击正方形时,对 clickHandler() 方法的调用都将修改正方形的颜色,方法是增大其红色值并减小其蓝色值。
package {
    import flash.display.Sprite;
    import flash.display.GradientType;
    import flash.geom.ColorTransform;
    import flash.events.MouseEvent;

    public class ColorTransformExample extends Sprite {
        public function ColorTransformExample() {
            var target:Sprite = new Sprite();
            draw(target);
            addChild(target);
            target.useHandCursor = true;
            target.buttonMode = true;
            target.addEventListener(MouseEvent.CLICK, clickHandler)
        }
        public function draw(sprite:Sprite):void {
            var red:uint = 0xFF0000;
            var green:uint = 0x00FF00;
            var blue:uint = 0x0000FF;
            var size:Number = 100;
            sprite.graphics.beginGradientFill(GradientType.LINEAR, [red, blue, green], [1, 0.5, 1], [0, 200, 255]);
            sprite.graphics.drawRect(0, 0, 100, 100);
        }
        public function clickHandler(event:MouseEvent):void {
            var rOffset:Number = transform.colorTransform.redOffset + 25;
            var bOffset:Number = transform.colorTransform.redOffset - 25;
            this.transform.colorTransform = new ColorTransform(1, 1, 1, 1, rOffset, 0, bOffset, 0);
        }
    }
}