包 | flash.geom |
类 | public class ColorTransform |
继承 | ColorTransform Object |
子类 | Color |
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
当 ColorTransform 对象应用于显示对象时,将按如下方法为每个颜色通道计算新值:
- 新红色值 = (旧红色值 *
redMultiplier
) +redOffset
- 新绿色值 = (旧绿色值 *
greenMultiplier
) +greenOffset
- 新蓝色值 = (旧蓝色值 *
blueMultiplier
) +blueOffset
- 新 Alpha 值 = (旧 Alpha 值 *
alphaMultiplier
) +alphaOffset
如果计算后任何一个颜色通道值大于 255,则该值将被设置为 255。如果该值小于 0,它将被设置为 0。
可以通过下列方式使用 ColorTransform 对象:
- 在 BitmapData 类的
colorTransform()
方法的colorTransform
参数中 - 作为 Transform 对象(此对象可以用作显示对象的
transform
属性)的colorTransform
属性
必须使用 new ColorTransform()
构造函数创建 ColorTransform 对象后,才能调用 ColorTransform 对象的方法。
颜色转换不会应用于影片剪辑(如加载的 SWF 对象)的背景色,它们仅应用于附加到影片剪辑的图形和元件。
相关 API 元素
属性 | 由以下参数定义 | ||
---|---|---|---|
alphaMultiplier : Number
与 Alpha 透明度通道值相乘的十进制值。 | ColorTransform | ||
alphaOffset : Number
-255 到 255 之间的数字,加到 Alpha 透明度通道值和 alphaMultiplier 值的乘积上。 | ColorTransform | ||
blueMultiplier : Number
与蓝色通道值相乘的十进制值。 | ColorTransform | ||
blueOffset : Number
-255 到 255 之间的数字,它先与 blueMultiplier 值相乘,再与蓝色通道值相加。 | ColorTransform | ||
color : uint
ColorTransform 对象的 RGB 颜色值。 | ColorTransform | ||
constructor : Object
对类对象或给定对象实例的构造函数的引用。 | Object | ||
greenMultiplier : Number
与绿色通道值相乘的十进制值。 | ColorTransform | ||
greenOffset : Number
-255 到 255 之间的数字,它先与 greenMultiplier 值相乘,再与绿色通道值相加。 | ColorTransform | ||
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 | ||
表示对象是否已经定义了指定的属性。 | Object | ||
表示 Object 类的实例是否在指定为参数的对象的原型链中。 | Object | ||
表示指定的属性是否存在、是否可枚举。 | Object | ||
设置循环操作动态属性的可用性。 | Object | ||
返回此对象的字符串表示形式,其格式设置遵守区域设置特定的约定。 | Object | ||
设置字符串格式并将其返回,该字符串描述 ColorTransform 对象的所有属性。 | ColorTransform | ||
返回指定对象的原始值。 | Object |
alphaMultiplier | 属性 |
public var alphaMultiplier:Number
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
与 Alpha 透明度通道值相乘的十进制值。
如果您使用 DisplayObject 实例的 alpha
属性直接设置显示对象的 Alpha 透明度值,它将影响该显示对象的 transform.colorTransform
属性的 alphaMultiplier
属性的值。
相关 API 元素
alphaOffset | 属性 |
public var alphaOffset:Number
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
-255 到 255 之间的数字,加到 Alpha 透明度通道值和 alphaMultiplier
值的乘积上。
blueMultiplier | 属性 |
public var blueMultiplier:Number
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
与蓝色通道值相乘的十进制值。
blueOffset | 属性 |
public var blueOffset:Number
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
-255 到 255 之间的数字,它先与 blueMultiplier
值相乘,再与蓝色通道值相加。
color | 属性 |
color:uint
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
ColorTransform 对象的 RGB 颜色值。
设置此属性时,会相应地更改三种颜色的偏移量值(redOffset
、greenOffset
和 blueOffset
),并将这三个颜色乘数值(redMultiplier
、greenMultiplier
和 blueMultiplier
)设置为 0。Alpha 透明度乘数和偏移量值不变。
在传递此属性的值时,请使用格式 0x RRGGBB。RR、GG 和 BB 均包含两个十六进制数字,这些数字指定每个颜色成分的偏移量。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, Flash Lite 4 |
与绿色通道值相乘的十进制值。
greenOffset | 属性 |
public var greenOffset:Number
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
-255 到 255 之间的数字,它先与 greenMultiplier
值相乘,再与绿色通道值相加。
redMultiplier | 属性 |
public var redMultiplier:Number
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
与红色通道值相乘的十进制值。
redOffset | 属性 |
public var redOffset:Number
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
-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, Flash Lite 4 |
用指定的颜色通道值和 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:flash.geom:ColorTransform):void
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
将 second
参数指定的 ColorTranform 对象与当前 ColorTransform 对象连接,并将当前对象设置为结果,即两个颜色转换的相加组合。在应用级联的 ColorTransform 对象时,其效果与在原始 颜色转换后应用 second
颜色转换的效果相同。
参数
second:flash.geom:ColorTransform — 要与当前 ColorTransform 对象合并的 ColorTransform 对象。
|
toString | () | 方法 |
- 构造函数创建一个新的 sprite 对象
target
。 CustomButton()
构造函数调用draw()
方法,该方法在 sprite 中绘制一个渐变正方形。CustomButton()
构造函数为 sprite 添加 click 事件侦听器,该侦听器由clickHandler()
方法处理。- 在
clickHandler()
方法中,两个属性被设置为当前颜色转换的redOffset
和blueOffset
属性。将每项的值调整 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); } } }
Tue Jun 12 2018, 11:04 AM Z