FC2ブログ
スポンサーサイト
--.--.-- (--:--) スポンサー広告
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
色をランダムに変える(色を変える)
2005.10.28 (00:02) [ Action Script ]色を変えるtrackback(0)comment(0)
色をランダムに変える(乱数を作る)の続きです。
記述したアクションスクリプトを具体的に読み取って
アクションスクリプトでシンボルの色を変える方法について勉強します。
前回、「red」「green」「blue」それぞれの箱(変数)に乱数を保管した事まで読み取りました。
では、その各値をどのようにして利用する事でシンボルの色を変化させるのか見てみます。


アクションスクリプト(以下AS)の、残りの記述です。

// 表の色をcolor1に
_root.color1=new Color(_root.nettaigyo.nettaigyo_omote);
// 裏の色をcolor2に
_root.color2=new Color(_root.nettaigyo.nettaigyo_ura);

//color1に色をセット
_root.color1.setRGB((red<<16)+(green<<8)+blue);
//color2に色をセット
_root.color2.setRGB((red*0.8<<16)+(green*0.8<<8)+blue*0.8);


コメント、行間を参考にすると、上下2つの部分に分かれているようです。


ではまず上の4行から見ていきます。
その中の2行目

_root.color1=new Color(_root.nettaigyo.nettaigyo_omote);

前回「=」は代入を表すと話しましたが、今回もそれが使われています。
今回は左側、代入される方は変数ではなく_root.color1
つまり「この世の中に存在するcolor1」
に代入しろ、って言われています。
(「この世の中」「所属」についてはこちらへ)
ここで疑問になるのは「あれ?color1なんてどこにあったっけ?」
って事なんですが、それは一先ず置いといて右側を見てみる事にします。
new Color( A ) には
「Aの色に関わる値を、新しく別の場所にまとめる為の手続きをする」
という意味があります。
では、まとめたらどこに保管しておきましょうか?
その保管場所が、color1ってわけです。
このcolor1と名付けられた特殊な箱をカラーオブジェクトと言います。
また、Aにあたるのは
「この世の中に存在するnettaigyoの持つnettaigyo_omote」
なので、2行目の意味は
「この世の中に存在するnettaigyoの持つnettaigyo_omoteの色に関わる
値をまとめ、この世の中のカラーオブジェクトcolor1に保管する」

って事になります。
nettaigyo10.png


4行目もcolor1がcolor2にnettaigyo_omoteがnettaigyo_uraに
変わっただけであり、意味は同じです。
新しい箱を用意してまで、色に関わる値を別に移したって事は、
次に何らかの処理をして値を変えていくはず。と予想できます。



下の部分に移り7行目を見てみます。
setRGB( A )「RGBの値をAにセットする」という意味です。
RGBとは、Red(赤)/Green(緑)/Blue(青)の3原色の値をもとにした
色の値の事です。
今回Aの値は(red<<16)+(green<<8)+blueとなっています。
ここで初めて前回保管して置いた、「red」「green」「blue」の箱(変数)
の値が使われているわけです。
(具体的なセットの計算の仕方は16進数やビットシフト(red<<16の「<<」)
に関わっており、ちょっと範囲外なので後述とさせていただきます。)
要は「「red」「green」「blue」の各箱に入っている乱数を
3原色の各値に利用して、色の値をセットする」

って事です。


ここで注意したいのが、「何にその命令をするのか?」って事です。
このムービーを作成する際、ASはボタンシンボルに記述しました。
しかし、色の値をセットして欲しいのはボタンではなく、わざわざ用意した
カラーオブジェクトcolor1に保管されているnettaigyo_omoteの色の値です。
そのため_root.color1.を前もって「所属」を示してあげれば
「この世の中に存在するcolor1に~する」
と他のものに命令を与える事ができます。
(こん時は「所属」というよりかは「対象」って感じですね)


こうしてcolor1の持つnettaigyo_omoteの色の値に
乱数を使った色の値がセットされるわけです。
この瞬間、nettaigyo_omoteは何らかの色に変わります。
9行目はcolor1がcolor2に入れ替わり、
色の値の計算が少し変化していますが(具体的な計算方法は後述)
同じように、乱数を使った色の値がセットされます。



ボタンシンボルに記述したASには、
全体がon (release) { }で囲われているので
「ボタンをクリックした瞬間、以上のような色変えを実行しろ」
って事になります。



これでASの読み取りは終わりです。
今回はASをボタンシンボルに記述しましたが、
「所属」に注意すれば、nettaigyo自身や、タイムライン上のあるフレーム
などに記述して、ボタンを省いたり、時間によって色が変わる、
なんてこともできると思います。
勉強もかねて、いろいろいじってみる事をお勧めします。



スポンサーサイト
prevhome next












トラックバックURL
→http://netlostman.blog31.fc2.com/tb.php/9-b0553acb
home
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。