概要
チビキャラ素材を利用した、カラーパレット&ミキサーから色を選択する「ぬり絵」フラッシュムービー。各キャラクターの、「色」を好みの色に編集して、キャプチャー保存してください。
作成例
メイン画面とコナン編集画面には、35×15ピクセルの透明ボタンがあります。メイン画面にあるボタンは「文字」を、コナン編集画面にあるボタンは「パネル」を、表示/非表示にします。
編集画面(各キャラクター)
メイン画面で各キャラクター(文字)ボタンを押すと、そのキャラクターの編集画面が開きます。ラジオボタンで選択し、「カラーパレット&ミキサー」パネルで色調整をします。どのキャラクターも⊗ボタンを押すと、編集内容が保持されたまま、メイン画面に戻ります。
(例外で、コナン画面のみ、メイン画面に戻らずキャプチャーして下さい。透明ボタンでラジオボタンとカラーパネルを非表示にできます。)
メイン画面(キャプチャー&保存画面)
※途中で「チビキャラ.com」ボタンを押すと、編集が全てリセットされるので注意して下さい。
1.透明ボタンを押して、好みにより文字を表示/非表示にします。
2.キャプチャーボタンを押すと、シャッター音がします。保存ボタンを押すとBOXが開くので、任意の場所に保存します。
3.リセットボタンを押すと、再編集ができます。保存する場合は、ファイル名を変更するか別の場所に変更して保存します。
FLASHの画面をキャプチャーしてファイル名をつけて保存する件
アクションスクリプト(AS3.0)
チビキャラ.com—色の三属性とコントラスト調整—(AS3.0)にて説明
アクションスクリプト(AS2.0)
プロトタイプ?試作品?サンプル↓
詳しくは、flaファイルを見て下さい。
▶色の操作はColorクラスで、 Flash 7 以前で使用。Flash 8 以降では ColorTransform クラスを使用
ActionScript 2.0 リファレンスガイド—Color クラス
Color クラスは Flash 8 以降では、使用禁止・・・という決まりらしいので、サンプルはFlash 7で作成。ただ、「チビキャラ.com」のswfはうっかりFlash 9のままだったんですが、ちゃんと動いているんで、なにが「使用禁止」か分からない・・・。
▶ターゲットになるmcはただのムービークリップではなく、カラー制御装置を自分の中に据えなければならない。
ターゲットになるmcにインスタンス名をつけて、更にそのmcのクリップアクションにonClipEvent (load) {theColor = new Color(this);} と記述する。(theColorは任意。)これがないと着色しない。MCインスタンスが持つ、「_x,_y」や「_alpha」のようなプロパティと違い、Colorクラスは特殊で、プロパティも「明度」「着色」「アルファ」など、様々な設定が可能なので、インスタンスを指定して、対象ごとにカラー制御装置を据付けなければなりません。左図がカラー制御装置で、onClipEvent (load) {theColor = new Color(this);}とそれぞれに記述してあります。他のボタンなどからアクセスする場合は、[インスタンス名.theColor]となります。
▶MovieClipの着色をクリアするには、setTransformを使う。
Color オブジェクトのカラー変換情報
Colorクラスに用意されているプロパティ名はra, ga, ba, aa, rb, gb, bb, ab。パラメータの入力形式は 0xRRGGBBAA。(0xは、数値が16進数であることを ActionScript コンパイラに伝える意) ra は、赤の成分のパーセント (-100 ~ 100) 。ga は、緑の成分のパーセント (-100 ~ 100) 。 ba は、青の成分のパーセント (-100 ~ 100) 。aa は、アルファのパーセント (-100 ~ 100) 。 rb は、赤の成分のオフセット (-255 ~ 255) 。gb は、緑の成分のオフセット (-255 ~ 255) 。 bb は、青の成分のオフセット (-255 ~ 255) 。ab は、アルファのオフセット (-255 ~ 255) です。カラー設定を何もしていないデフォルト値のObject指定は、.setTransform({ra:100, ga:100, ba:100, rb:0, gb:0, bb:0});なので、「リセットボタン」に記述します。ただ、先に.getTransformしておかないとMovieClipは(#000000)で黒く着色されてしまいます。なので「リセットボタン」のボタンアクションは
on (press) {[カラー制御装置].getTransform(); } //マウスプレスでカラー制御装置の色設定を取得
on (release) {[カラー制御装置].setTransform({ra:100, ga:100, ba:100, rb:0, gb:0, bb:0}); }//マウスリリースでデフォルト値に戻す
となります。(ただしサンプルswfはフレームアクションにしてあります。)
▶ラジオボタンで、ターゲットmcを選択 戻る
ActionScript 2.0 コンポーネントリファレンスガイド / RadioButton コンポーネント
[コンポーネント] から、ライブラリにRadioButtonコンポーネントをドラッグしておきます。ライブラリに登録したRadioButtonを、ステージにカラー制御装置と同じ数を並べ、各ラジオボタンの[コンポーネントインスペクタ] パネルでパラメータを設定します。「値」の部分をクリックすると、入力できるようになっています。 dataにはターゲットmc(カラー制御装置)のインスタンス名。 labelには日本語の表示文字。 groupName は統一します。左図の場合groupNameは”radioGroup”と入力したので、他のラジオボタンも”radioGroup”で統一する、という事です。デフォルトでは選択肢から 1 つだけしか選択できない様になっていて、グループ中のラジオボタンは1つしか選択できないので便利です。あとのパラメータはデフォルト値のままです。パラメータ入力が済んだら次に、ラジオボタングループを機能させる為にアクションスクリプトを記述します。
シーン1のフレームアクションに、mcName = "mc00"としておき、" "の中をラジオボタン選択で変化させます。
flashistListener = new Object();
flashistListener.click = function (evt){
_root.mcName = evt.target.selection.data; //クリックでmcNameをデータ値にする
_root.panel.txtN = _root[_root.mcName].name;} //現在の「カラー制御装置」をテキスト表示
[統一したgroupName].setStyle("color", "0xFFFFFF"); //表示文字の色を白色に
[統一したgroupName].addEventListener("click", flashistListener); //click イベントハンドラを追加
と記述します。
他には、ボタンアクションで各RadioButtonに直接on (click) {mcName = "そのmcのインスタンス名";name = "そのmcの日本語表示文字";}とする方法もあるが、スマートなフレームアクションにした。
参考画像
http://shinichi0heiji.mforos.com/1610155/8099904-heiji-y-kazuha/?pag=2
http://fotos.miarroba.es/fo/505d/294DD709F1284D620C302B4D620C2A.jpg