パッケージflash.geom
public class ColorTransform
継承ColorTransform Inheritance Object

ColorTransform クラスを使用すると、表示オブジェクトのカラー値を調整することができます。カラー調整、つまりカラー変換は、4 つのチャンネルすべてに適用できます(赤、緑、青、アルファ透明度)。

ColorTransform オブジェクトを表示オブジェクトに適用するときに、各カラーチャンネルの新しい値を算出する方法は次のとおりです。

算出後、カラーチャンネル値が 255 よりも大きい場合は 255 に設定されます。0 より小さい場合は 0 に設定されます。

ColorTransform オブジェクトは次のように使用できます。

ColorTransform オブジェクトのメソッドを呼び出すには、コンストラクタ new ColorTransform() を使用して ColorTransform オブジェクトを作成する必要があります。

カラー変換は、ムービークリップ (ロードした SWF オブジェクトなど) の背景色には適用されません。ムービークリップに割り当てられているグラフィックとシンボルにのみ適用されます。

例の表示

関連項目

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


パブリックプロパティ
 プロパティ定義
  alphaMultiplier : Number
アルファ透明度チャンネル値に乗算する 10 進数値です。
ColorTransform
  alphaOffset : Number
アルファ透明度チャンネル値に alphaMultiplier 値を乗算した後に加算する数値です。数値の範囲は -255 ~ 255 です。
ColorTransform
  blueMultiplier : Number
青チャンネル値に乗算する 10 進数値です。
ColorTransform
  blueOffset : Number
青チャンネル値に blueMultiplier 値を乗算した後に加算する数値です。数値の範囲は -255 ~ 255 です。
ColorTransform
  color : uint
ColorTransform オブジェクトの RGB カラー値です。
ColorTransform
 Inheritedconstructor : Object
特定のオブジェクトインスタンスのクラスオブジェクトまたはコンストラクタ関数への参照です。
Object
  greenMultiplier : Number
緑チャンネル値に乗算する 10 進数値です。
ColorTransform
  greenOffset : Number
緑チャンネル値に greenMultiplier 値を乗算した後に加算する数値です。数値の範囲は -255 ~ 255 です。
ColorTransform
 Inheritedprototype : Object
[static] クラスまたは関数オブジェクトのプロトタイプオブジェクトへの参照です。
Object
  redMultiplier : Number
赤チャンネル値に乗算する 10 進数値です。
ColorTransform
  redOffset : Number
赤チャンネル値に redMultiplier 値を乗算した後に加算する数値です。数値の範囲は -255 ~ 255 です。
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)
指定されたカラーチャンネル値とアルファ値を持つ ColorTransform オブジェクトを作成します。
ColorTransform
  concat(second:ColorTransform):void
second パラメータで指定された ColorTranform オブジェクトと現在の ColorTransform オブジェクトを連結し、2 つのカラー変換を加算的に組み合わせた結果を現在のオブジェクトに設定します。
ColorTransform
 InheritedhasOwnProperty(name:String):Boolean
オブジェクトに指定されたプロパティが定義されているかどうかを示します。
Object
 InheritedisPrototypeOf(theClass:Object):Boolean
Object クラスのインスタンスが、パラメータとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。
Object
 InheritedpropertyIsEnumerable(name:String):Boolean
指定されたプロパティが存在し、列挙可能かどうかを示します。
Object
 InheritedsetPropertyIsEnumerable(name:String, isEnum:Boolean = true):void
ループ処理に対するダイナミックプロパティの可用性を設定します。
Object
  toString():String
ColorTransform オブジェクトのすべてのプロパティが列挙されたストリングを書式設定して返します。
ColorTransform
 InheritedvalueOf():Object
指定されたオブジェクトのプリミティブ値を返します。
Object
プロパティの詳細
alphaMultiplierプロパティ
public var alphaMultiplier:Number

アルファ透明度チャンネル値に乗算する 10 進数値です。

DisplayObject インスタンスの alpha プロパティを使用して表示オブジェクトのアルファ透明度の値を直接設定すると、その表示オブジェクトの transform.colorTransform プロパティの alphaMultiplier プロパティ値に影響します。

関連項目

alphaOffsetプロパティ 
public var alphaOffset:Number

アルファ透明度チャンネル値に alphaMultiplier 値を乗算した後に加算する数値です。数値の範囲は -255 ~ 255 です。

blueMultiplierプロパティ 
public var blueMultiplier:Number

青チャンネル値に乗算する 10 進数値です。

blueOffsetプロパティ 
public var blueOffset:Number

青チャンネル値に blueMultiplier 値を乗算した後に加算する数値です。数値の範囲は -255 ~ 255 です。

colorプロパティ 
color:uint  [read-write]

ColorTransform オブジェクトの RGB カラー値です。

このプロパティを設定すると、それに応じて 3 つのカラーオフセット値 (redOffsetgreenOffsetblueOffset) が設定され、3 つのカラー乗数値 (redMultipliergreenMultiplierblueMultiplier) が 0 に設定されます。アルファ透明度の乗数値とオフセット値は変わりません。

このプロパティに値を渡す場合は、書式 0xRRGGBB を使用します。RRGG、および BB はそれぞれ、各カラー成分のオフセットを指定する 2 桁の 16 進数で構成されます。0x は、数値が 16 進数であることを ActionScript コンパイラに伝えるものです。

実装
    public function get color():uint
    public function set color(value:uint):void
greenMultiplierプロパティ 
public var greenMultiplier:Number

緑チャンネル値に乗算する 10 進数値です。

greenOffsetプロパティ 
public var greenOffset:Number

緑チャンネル値に greenMultiplier 値を乗算した後に加算する数値です。数値の範囲は -255 ~ 255 です。

redMultiplierプロパティ 
public var redMultiplier:Number

赤チャンネル値に乗算する 10 進数値です。

redOffsetプロパティ 
public var redOffset:Number

赤チャンネル値に redMultiplier 値を乗算した後に加算する数値です。数値の範囲は -255 ~ 255 です。

コンストラクタの詳細
ColorTransform()コンストラクタ
public 関数 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)

指定されたカラーチャンネル値とアルファ値を持つ 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) — アルファ透明度の乗数の値 (0 ~ 1) です。
 
redOffset:Number (default = 0) — 赤のカラーチャンネルのオフセット値 (-255 ~ 255) です。
 
greenOffset:Number (default = 0) — 緑のカラーチャンネルのオフセット値 (-255 ~ 255) です。
 
blueOffset:Number (default = 0) — 青のカラーチャンネルのオフセット値 (-255 ~ 255) です。
 
alphaOffset:Number (default = 0) — アルファ透明度のチャンネル値のオフセット (-255 ~ 255) です。
メソッドの詳細
concat()メソッド
public function concat(second:ColorTransform):void

second パラメータで指定された ColorTranform オブジェクトと現在の ColorTransform オブジェクトを連結し、2 つのカラー変換を加算的に組み合わせた結果を現在のオブジェクトに設定します。連結された ColorTransform オブジェクトを適用する場合、その効果は second のカラー変換を元のカラー変換の後に適用した場合と同じです。

パラメータ
second:ColorTransform — 現在の ColorTransform オブジェクトと結合する ColorTransform オブジェクトです。
toString()メソッド 
public function toString():String

ColorTransform オブジェクトのすべてのプロパティが列挙されたストリングを書式設定して返します。

戻り値
String — ColorTransform オブジェクトのすべてのプロパティを列挙するストリングです。

次の例では、TransformExample クラスを使用して単純なスプライトを グラデーションのパターンで塗りつぶされた正方形のシェイプに作成します。ユーザーが正方形をクリックするたびに、 正方形のスプライトのカラーを変換します。変換時は、赤のカラーチャンネルを濃く、 青のカラーチャンネル値を薄くします。 これを行うには、以下の手順を実行します。
  1. コンストラクタが新しい Sprite オブジェクト target
  2. を作成します。
  3. CustomButton() コンストラクタが draw() メソッドを呼び出します。このメソッドはグラデーションの 四角形をスプライトに描画します。
  4. CustomButton() コンストラクタはスプライトに click イベントリスナーを追加します。これは clickHandler() メソッドによって処理されます。
  5. clickHandler() メソッドでは、2 つのプロパティが 現在のカラー変換の redOffset プロパティとblueOffset プロパティに 設定されます。それぞれ 25 に調整されます。次に正方形のスプライトの 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);
        }
    }
}