fc2ブログ
 
■プロフィール

クリエイトウェーブ

Author:クリエイトウェーブ
開発における、諸々を書いていきたいなと思っています。
mail : info@createwave.jp

■最近の記事
■カテゴリー
■最近のコメント
■月別アーカイブ

■最近のトラックバック
■ブログ内検索

■RSSフィード
■リンク
ActionScript3.0で色相、彩度、明度、コントラストをいじる
おつかれさまです。
フッチーです。

前から、ActionScript3で明度とかいじる命令が良く判らないなあ~ときになってました。
CSのオーサリングツールでは、カラー効果とかで直ぐいじれるのに、どうするのかなあ・・・・と

Tweenerとかに命令があるのか、Tweenerで明度とかいじってるサイトとかもあったんですが、Tweenerは使ったことない自分。

ColorMatrixFilterを使うのは前々から、思っていたけど、意味が判りにくいので後回しにしてました。
でも純正でColorMatrixFilterの明度とかいじる命令があった・・・ 忘れないうちにメモです。

まず
import fl.motion.ColorMatrix;
import flash.filters.ColorMatrixFilter;

で、ColorMatrix と ColorMatrixFilter の2つのインポートが必要です。


次に

var colorMatrix:ColorMatrix = new ColorMatrix();

で、新しいColorMatrixオブジェクトを作ります。


colorMatrix.GetFlatArray();

でColorMatrixFilterで使うための配列が取れるのですが、traceをかけるとデフォの標準な配列が入ってます。


colorMatrix.SetBrightnessMatrix(明度値);
で明度をセットして

colorMatrix.GetFlatArray();
で配列を取り出し

ColorMatrixFilter
に、その配列をセットして明度を調整できるようです。


仮にムービークリップ 「_mc」に明度値「50」をセットする場合は

var colorMatrix:ColorMatrix = new ColorMatrix();
colorMatrix.SetBrightnessMatrix(50);
var filter:ColorMatrixFilter = new ColorMatrixFilter();
var filterMatrix:Array = colorMatrix.GetFlatArray();
filter.matrix = filterMatrix;
_mc.filters = [filter];

で明度を調整することが出来ます。
明度値は、Number型で 0~255 となってて0がデフォルトで通常値ですが それだと明るくなるだけなので -30とかマイナス値を入れてみるとちゃんと暗くなりました。動くのだから使っていいのかな・・・

コントラストをいじる時は
colorMatrix.SetContrastMatrix(コントラスト値);
コントラスト値、はNumber型で 0~255

色相をいじる時は
colorMatrix.SetHueMatrix(色相値);
色相値値、はNumber型で 0~255


彩度をいじる時は
colorMatrix.SetSaturationMatrix (彩度値);
彩度値、はNumber型で 0~255

となるようです。
これで、少しスッキリしました(笑

テーマ:FLASH DEVELOP - ジャンル:コンピュータ

カテゴリー:Flash | TM(0) | CM(0)
次のページ