TONPOOBLOG 移転のお知らせ

これまで本URL(http://tonpooblog.blogspot.com/)で運営してきたこのTONPOOBLOGですが、この度下記の新URLに移転することとなりました。

http://www.tonpoo.com/blog/

今後とも上記URLにて、変わらぬご愛顧をお願い致します。

TONPOOBLOG管理人:Tonpoo.com

2008年8月19日火曜日

AS3のColorクラス(interpolateTransform()メソッドなど)

ActionScript3.0のヘルプ(FlashCS3の)の読み方にまだ慣れない。AS2のヘルプ(ActionScript 2.0リファレンスガイド)なら、各クラスのプロパティやらメソッドやらについて、ほぼ必ずサンプルのコードが載っていたのに、AS3のヘルプ(ActionScript 3.0コンポーネントリファレンスガイド)で色々なクラスを調べても、なかなかサンプルのコードが載ってない。

で、今回はムービークリップの色の変更をさせようと思い、ColorTransformクラスについて探している中で、昔懐かし(?)Colorクラスを発見!

ActionScript 3.0 コンポーネントリファレンスガイド:Color


と思ってよく読んだら、「Color クラスは、Flash Player の ColorTransform クラスを拡張し、明度およびティントを制御する機能を追加します。」とのこと。ああ、以前のColorクラスとは違って、ColorTransformクラスの拡張なのね。でも、明度やティントの制御だとか、「2 つの ColorTransform オブジェクトまたは 2 つのカラー値を補間するための静的メソッドも存在します」だとか、割とよさげなこと書いてあるから、使ってみようかな。

・・・と、思ってみたものの、サンプルコードが見あたらず。ネット探しゃあ出てくるだろうと思って「AS3 Colorクラス interpolateTransform」などのキーワードでググってみるも、出てくるのはAdobeのヘルプページくらい。

むむ。ぜ、全然わからん・・・。interpolateTransform()メソッドの説明には、「ColorTransform オブジェクトから別のオブジェクトにスムーズにブレンドします。 」とか書いてあるから、例えばある色からある色に変化させるのに便利なんだろうけど、色を適用させるオブジェクトを指定するパラメータだとか、ブレンドにかかる時間を指定するパラメータも無いし、どないすんねん!!

闇雲に試してみた挙げ句、やっとこ正しい使い方(?)になったっぽいのが下記のスクリプト。

//Colorクラスのインポート
import fl.motion.Color;
//開始色(赤)のColorTransformオブジェクトを生成
var cTrans1:ColorTransform = new ColorTransform(1,0,0,1,0,0,0,0);
//終了色(青)のColorTransformオブジェクトを生成
var cTrans2:ColorTransform = new ColorTransform(0,0,1,1,0,0,0,0);
//開始色と終了色の間の任意の位置の色データを保持したColorTransformオブジェクトを生成
var cTrans3:ColorTransform = Color.interpolateTransform(cTrans1,cTrans2,0.5);
//cTrans3をtarget_mcに適用
target_mc.transform.colorTransform = cTrans3;


interpolateTransform()メソッドの「progress」パラメータは、開始色の位置を0、終了色の位置を1とした時、最終的に生成する色(上の場合cTrans3)の位置をどこにするか、ということを指定するためのパラメータなのね。上記では0.5にしたから、開始色と終了色のちょうど中間。例えば0.1とかだったらより開始色に近い色になるし、0.9とかだったらより終了色に近い色になる、ってわけか。

とりあえず忘れないようにメモ。

0 件のコメント: