| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
ColorTransform クラスを使用すると、表示オブジェクトのカラー値を調整することができます。カラー調整、つまり "カラー変換" は、赤、緑、青、アルファ透明度の 4 つのチャンネルすべてに適用できます。
ColorTransform オブジェクトを表示オブジェクトに適用するときに、各カラーチャンネルの新しい値を算出する方法は次のとおりです。
-
新しい red 値 = (古い red 値 *
redMultiplier) + redOffset
-
新しい green 値 = (古い green 値 *
greenMultiplier) + greenOffset
-
新しい blue 値 = (古い blue 値 *
blueMultiplier) + blueOffset
-
新しい alpha 値 = (古い alpha 値 *
alphaMultiplier) + alphaOffset
算出後、カラーチャンネル値が 255 よりも大きい場合は 255 に設定されます。0 より小さい場合は 0 に設定されます。
ColorTransform オブジェクトは次のように使用できます。
-
colorTransform パラメータ(BitmapData クラスの colorTransform() メソッド)に設定します。
-
Transform オブジェクトの
colorTransform プロパティとして使用します。Transform オブジェクトは表示オブジェクトの transform プロパティとして使用できます。
ColorTransform オブジェクトのメソッドを呼び出すには、コンストラクタ new ColorTransform() を使用して ColorTransform オブジェクトを作成する必要があります。
カラー変換は、ムービークリップ(ロードした SWF オブジェクトなど)の背景色には適用されません。ムービークリップに割り当てられているグラフィックとシンボルにのみ適用されます。
例を表示
public var alphaMultiplier:Number| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
アルファ透明度チャンネル値に乗算する 10 進数値です。
DisplayObject インスタンスの alpha プロパティを使用して表示オブジェクトのアルファ透明度の値を直接設定すると、alphaMultiplier プロパティ値(その表示オブジェクトの transform.colorTransform プロパティ)に影響します。
関連項目
public var alphaOffset:Number| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
アルファ透明度チャンネル値に alphaMultiplier 値を乗算した後に加算する数値です。数値の範囲は -255 ~ 255 です。
public var blueMultiplier:Number| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
青チャンネル値に乗算する 10 進数値です。
public var blueOffset:Number| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
青チャンネル値に blueMultiplier 値を乗算した後に加算する数値です。数値の範囲は -255 ~ 255 です。
color:uint [読み書き可能]
| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
ColorTransform オブジェクトの RGB カラー値です。
このプロパティを設定すると、それに応じて 3 つのカラーオフセット値(redOffset、greenOffset、blueOffset)が変更され、3 つのカラー乗数値(redMultiplier、greenMultiplier、blueMultiplier)が 0 に設定されます。アルファ透明度の乗数値とオフセット値は変更されません。
このプロパティに値を渡す場合は、書式 0x RRGGBB を使用します。 RR、GG および BB はそれぞれ、各カラー成分のオフセットを指定する 2 桁の 16 進数で構成されます。 0x は、数値が 16 進数であることを ActionScript コンパイラに伝えるものです。
実装 public function get color():uint public function set color(value:uint):voidpublic var greenMultiplier:Number| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
緑チャンネル値に乗算する 10 進数値です。
public var greenOffset:Number| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
緑チャンネル値に greenMultiplier 値を乗算した後に加算する数値です。数値の範囲は -255 ~ 255 です。
public var redMultiplier:Number| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
赤チャンネル値に乗算する 10 進数値です。
public var redOffset:Number| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
赤チャンネル値に redMultiplier 値を乗算した後に加算する数値です。数値の範囲は -255 ~ 255 です。
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 |
指定されたカラーチャンネル値とアルファ値を持つ 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)です。 |
public function concat(second:ColorTransform):void| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
second パラメータで指定された ColorTranform オブジェクトと現在の ColorTransform オブジェクトを連結し、2 つのカラー変換を加算的に組み合わせた結果を現在のオブジェクトに設定します。連結された ColorTransform オブジェクトを適用する場合、その効果は second のカラー変換を元のカラー変換の後に適用した場合と同じです。
パラメータ
| second:ColorTransform — 現在の ColorTransform オブジェクトと結合する ColorTransform オブジェクトです。 |
public function toString():String| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
ColorTransform オブジェクトのすべてのプロパティが列挙されたストリングを書式設定して返します。
戻り値 | String — ColorTransform オブジェクトのすべてのプロパティを列挙するストリングです。 |
次の例では、TransformExample クラスを使用して、グラデーションのパターンで塗りつぶされた正方形のシェイプの単純なスプライトを作成します。ユーザーが正方形をクリックするたびに、アプリケーションは正方形のスプライトのカラーを変換します。変換時は赤のカラーチャンネルを濃くし、青のカラーチャンネルを薄くします。これを行うには、以下の手順を実行します。
-
コンストラクタが新しい Sprite オブジェクト
target を作成します。
-
CustomButton() コンストラクタは draw() メソッドを呼び出します。このメソッドは、グラデーションの四角形をスプライトに描画します。
-
CustomButton() コンストラクタはスプライトに click イベントリスナーを追加します。これは clickHandler() メソッドによって処理されます。
-
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);
}
}
}
© 2004-2008 Adobe Systems Incorporated. All rights reserved.
Thu Jan 8 2009, 12:14 AM -08:00