標籤雲

搜尋此網誌

2009/01/17

負責顯示物件變色的 ColorTransform

Flash 裡的色彩採用 32 位元色值( 0xAARRGGBB )
若不算透明度, 也可寫為 24 位元色值( 0xRRGGBB )
由於 int 可能會放不下32位元的顏色值, 所以是以 uint 型別存放

當 ColorTransform 物件套用至顯示物件時,每個新的顏色色版數值計算方式如下:
新的紅色值 = (舊的紅色值 * redMultiplier ) + redOffset
新的綠色值 = (舊的綠色值 * greenMultiplier ) + greenOffset
新的藍色值 = (舊的藍色值 * blueMultiplier ) + blueOffset
新的 Alpha 值 = (舊的 Alpha 值 * alphaMultiplier ) + alphaOffset
(以十進位來說, 每個顏色的值都是0~255, 高於255以255計, 低於0以0計)

ColorTransform 物件的使用有兩種方式:
1.在 BitmapData 類別之 colorTransform() 方法的 colorTransform 參數中使用
2.當作 Transform 物件 (可當作顯示物件的 transform 屬性使用) 的 colorTransform 屬性使用

接下來看看屬性:
color : uint //ColorTransform 物件的 RGB 顏色數值
redMultiplier : Number //十進位值,將會和紅色色版值相乘
greenMultiplier : Number //十進位值,將會和綠色色版值相乘
blueMultiplier : Number //十進位值,將會和藍色色版值相乘
alphaMultiplier : Number //十進位值,將會和 Alpha 透明度色版值相乘
redOffset : Number
//從 -255 到 255 的數字。將會在乘以 redMultiplier 值之後,加上紅色色版值
greenOffset : Number
//從 -255 到 255 的數字。將會在乘以 greenMultiplier 值之後,加上綠色色版值
blueOffset : Number
//從 -255 到 255 的數字。將會在乘以 blueMultiplier 值之後,加上藍色色版值
alphaOffset : Number
//從 -255 到 255 的數字。將會在乘以 alphaMultiplier 值之後,加上 Alpha 透明度色版值
建構子:
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 物件。

方法:
concat(second:ColorTransform):void
連接 second 參數指定的 ColorTranform 物件與目前的 ColorTransform 物件,然後將目前的物件設定為結果 (兩個顏色轉換的累增組合)

沒有留言: