• ベストアンサー

Flashで、スクリプトによるカラーの変化を表現

Flashで、setRGBを使って、 あるカラーから、あるカラーへ徐々に色を変化させることは可能でしょうか。 例えば、紫から緑や、紫から赤など、 一つの色からの変化を何通りも実現できれば最高です。 それをスクリプトで自由に表現できればと思っています。 色が徐々に変わるようにしたいのですが、それは可能でしょうか。 宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • DPE
  • ベストアンサー率85% (666/776)
回答No.3

Color オブジェクトの setRGB メソッドでは、線やグラデーションのかかった塗りなども、全て指定の色で塗りつぶされてしまいます。 色調を変えたい場合は、setRGB ではなく setTransform メソッドを使います。 setTransform で必要とされるパラメータは、多くて複雑です。ですから、Object 型という汎用オブジェクトを用意し、このオブジェクトにパラメータを設定して引数として渡すように設計されています。 詳しくは省略しますが、ra のように2文字目が”a”で終わるパラメータは、「高度な設定」のパネルで左側にある「%」の設定に、rb のように”b”で終わるパラメータは、右側の数字を入れる部分(オフセット)に対応しています。 1つの色から何通りもの変化を、とのことですので、このようにしてみてはいかがでしょう。 ムービークリップは、できればモノトーンで作った方が分かりやすいです。 例えば、白い四角形のムービークリップがあるとします。 これのインスタンスをステージに置いて、「カラー」→「高度な設定」のパネルを見てみて下さい。RGB全ての要素が100%に、オフセットは0 になっていると思います。 ここで、仮にRを100%に、GとBを0%にすると、ムービークリップの色が赤に変わります。 右側のオフセットをいじるとややこしいので、左側にあるRGBの割合を操作することで、色を変化させることにします。 ActionScript では、パラメータを設定することで色を変えます。そのパラメータを一定の数字ではなく、フレームごとに変わる変数にしておけば、フレームごとに色が変化するアニメになります。 とりあえず、ステージに、 clip という白い四角形のムービークリップがあるとします。 clip の色を赤から紫へ変えるスクリプトは、次のようになるかと思います。  //初期設定  onClipEvent( load )  {   var color_ctrl , param_obj , r , g , b;   //カラー操作オブジェクトと、パラメータ用オブジェクトの生成   color_ctrl = new Color( this );   param_obj = new Object();   //RGBの割合を管理する変数の初期化:最初は赤にする   r = 100;   g = 0;   b = 0;      //カラーのパラメータを設定   param_obj = { ra:r , rb:"0" , ga:g , gb:"0" , ba:b , bb:"0", aa:"100" , ab:"0" };      //カラー変更処理   color_ctrl.setTransform( param_obj );  }  //赤→紫のカラーアニメ  onClipEvent( enterFrame )  {   //青の割合をアップ:100%になったらアニメ終了   b += 5;   if ( b > 100 )   {    b = 100;   }   //パラメータを更新   param_obj.ba = b;   //カラー変更処理   color_ctrl.setTransform( param_obj );  } (↑このスクリプトをコピーして使う場合は、行頭の全角スペースを、全て半角のスペースかタブに置き換えて下さい。このまま使うと、シンタックスエラーになります) enterFrame イベントは、ムービークリップがステージに存在している間、常に発生しています。この点を利用して、青の要素を1フレームごとに変更します。 今回は青の要素だけが変化するので、setTransform に渡される param_obj は param_obj.ba の部分のみを変更していますが、r と g を変更する場合は、param_obj.ra と param_obj.ga に r と g の内容を代入して、変更を反映させます。 あとは色の調整ですので、いろいろ試してみて下さい。 ・・・ところで、先ごろのカテゴリーの整理で、「プログラミング」のところに「Flash」というカテゴリーが作られました。 最近、カテゴリー違いで質問が削除されたという話を、よく耳にします。「グラフィックソフト」でも間違いではないとは思うのですが、ActionScript の質問は「Flash」のカテゴリーを利用した方が、無難な気がします。 長くなってしまって、すみませんでした。

その他の回答 (2)

noname#5549
noname#5549
回答No.2

こんにちは。 う~ん、複数のオブジェクトで制御するので、ここで解説するのは難しいのですが..... 使用するのはsetTransformです。 カラーオブジェクトのメソッドの一種ですが、 これでRGB値を個別に変化できます。 RGBそれぞれのパーセント、オフセットを変数とし、 その変数を乱数にしてしまうわけです。 多分、どこかに解説サイトがあるんじゃないかとは思いますが..... ちなみに僕が参考にしているのは、「FLASH5上級サンプル100」という本です。 ソースは置いてないですが、この本に収録されたFlashはここで見ることが出来ます。↓

参考URL:
http://www.dunk.co.jp/flash5/
noname#5549
noname#5549
回答No.1

こんばんは。 5以降であれば、RGBとアルファ制御可能です。 乱数を利用すれば、色んな色に変化させることも出来るでしょう。

sugarbrown
質問者

お礼

ありがとうございます。 出来れば、具体的なスクリプトを一つ提示してくれませんでしょうか。 イメージしようにも知識が乏しいために、どのようにスクリプトを書けばいいのか想像できなくて困っております。 どうぞ宜しくお願いします。

関連するQ&A

  • モノクロからカラーへ

    windows2000 FLASH MX 一つの画像がモノクロからカラーへと徐々に変化していくシーンを作りたいのですがFlashで作成で作成出来るのでしたら方法を教えて下さい。 アクションスクリプトを使用せずに作成したいのですが、どうしてもアクションスクリプトを使うのであれば記述を教えて下さい。

    • ベストアンサー
    • Flash
  • カラーセロファンがほしいのですが

    文化祭でカラーセロファンを使ってステンドグラス風に窓を飾ります。11月が文化祭なのでそろそろ準備をしないといけないのですが、カラーセロファンの色が赤、青、黄、緑、透明の5色しかそろいません。ピンクや紫がほしいのですが、手に入れる方法を知っている方がいましたら教えてください。困っていますので、よろしくお願いします。

  • 抵抗器 5本のカラーコードの見方を教えて

    パイオニアのアンプで以下の抵抗器・カラーコードがありましたが、テスターテストしても妙な数値を出し、しかもカラーコードが以下のとおりでしたが不明です誰か教えて下さい。良く色は見たのですが? 1・(茶・黒・茶・金・白)2・(赤・紫・茶・銀・銀)3・(茶・黒・赤・銀・銀)4・(赤・赤・茶・銀・銀)5・(茶・緑・茶・銀・銀)6・(赤・紫・黒・金・白)7・(赤・赤・赤・灰・灰)8・(橙・橙・金・銀・白)以上です。他に特別なカラーコードの読み方が有るのですか?

  • カラーチャートで・・・

    赤色・青色と一言で言ってもいろんな色がありますが、 たとえばイタリア国旗の赤や緑はカラーチャートで選ぶとこの色・・・と いうふうに参考にデーターやHPなどはありますでしょうか? と、いうかどんな風に決まっていたり何に従って表現されているものなのでしょうか。 気になってしょうがありません。どうぞよろしく。

  • Scriptで色と透明度を変化させるには?。

    ある矩形をフレーム上に配置し、モーショントゥイーンを使って透明度と色の変化をつけようとしましたが、透明度は出来ても色の変化が出来ません。 そこで、Scriptを利用してと思い、下記のScriptを記述しました。 onClipEvent(load) {  var my_color:Color = new Color(aa);  var STform:Object = new Object();  STform.ra = 255;  STform.rb = 154;  STform.ga = 50  STform.gb = 128;  STform.ba = 50;  STform.bb = 106;  STform.aa = 50;  STform.ab = 0;  my_color.setTransform(STform) ; } onClipEvent(enterFrame) {  this._alpha += 1 ;  if(STform.rb < 300) {    STform.rb += 1;  }  if(STform.gb < 145) {    STform.gb += 1;  }  if(STform.bb > 80) {    STform.bb -= 1;  }  my_color.setTransform(STform) ; } 各値はデタラメです。(色と透明度の変化だけを確認したかったので。) 結果は、透明度(Alpha値)は正しく変化しましたが、色が 変わりません。どこに問題があるのでしょうか?。 どうぞ宜しく御願い致します。

    • ベストアンサー
    • Flash
  • レインボー色ってどうやって表現する?

    レインボー、つまり全ての色を時間変化で表現したいのです。 今このような式で色が表現できるとします。 GetColor(R,G,B); R,G,Bには0~255までの数値が入ります。 ループする処理の終わりに Time++; を書き、int型のTimeが時間変化の値とします。 つまり、黒から赤へ時間変化で表現するには G=0; B=0; GetColor(Time,G,B); で表現できます。 赤、緑、青を時間変化で表現はできるのですが、全ての色を時間変化で表現したい時はどうしたらいいのでしょうか?

  • 紫がイメージカラーの映画

    学校の体育祭の色が紫になりました。 うちの体育祭は、テーマカラーに沿った映画などを題材にして、 やぐらを造ったり、ダンスをしたりするのですが、 紫のものがまったく思いつかなくて… まるっきり紫じゃなくても、こじつけでもいいので、 テーマになるようなオススメの映画はありませんか? 去年の例ですと、 黒:STAR WARS 緑:天空の城ラピュタ 赤:マリオ って感じです。 よろしくお願いします。

  • Flash Lite 1.1のダイナミックテキストの文字色

    Flash Lite 1.1のダイナミックテキストの文字色は、スクリプトで色を変える事ができるのしょうか? text.color = 赤 などのようにスクリプトに記載して、文字色を変えたいと考えています。 ググってみたのですが、変更できるような記載がなかなか見つからなかったので、質問した次第です。 お忙しい所お手数ですが、ご教授頂ければ幸いでございます。

    • ベストアンサー
    • Flash
  • SWiSHのスクリプトについて

    Flashでなくて申し訳ありません。 SWiSHを使ってFlashを作っています。 スクリプトを使ってオブジェクトの色を取得したいのですがヘルプの通り書いているつもりですが言うことを聞いてくれません。 手順の通り作業をすると「エラー:次の関数またはメンバーが見つかりません "Color" 次のステートメント:」とエラーが表示されます。 SWiSHに詳しい方お助けください。 [手順] (1)四角オブジェクトをはる (2)スプライトに変換する (3)名前を「myshape」に変更する (4)次のスクリプトを書く var mycolor = new Color("myclip"); trace(myclip.getRGB()); (5)実行する

  • 奇抜なカラー

    奇抜なカラー こんばんは。 夜遅くに失礼します。 27歳の男です。 自分は今まで青、白、桃色、黄色、赤、オレンジと奇抜なカラーをやってきました。 そこで質問です。 職場が自由なので今度は黄緑かライトグリーン、水色かオレンジか桜色にしようと思ってるんですが… 奇抜な髪の色の人って怖いですか? 自分は雑貨ショップとかで自分のように奇抜な色にしている人を見て「オシャレだな」と感じ自分で声かけて仲良くなりました。 ちなみに、その人は女性です。 男が奇抜な色にしてると怖いですか? 子供とかに怖がられていた事もありますが大人の立場から見ても話しかけにくかったり近寄りがたかったりするもんでしょうか? 自分は服の色も赤、青、黄色、黄緑、オレンジ、ピンクや時には金や銀やキラキラの赤とかキラキラの黄緑とかも着ます。 もちろん、そんな格好してる人は周りにはいません。 カッコイイとかダサイとか第一印象ではどのように思いますか? 自分の場合はカッコイイとかダサイの範囲をはるかに超越しているかもしれませんが… 夏になると腕を出すのでアクセサリもいくつもジャラジャラつけたり爪の色も赤・青・黄色・緑・ピンク・オレンジ・紫・黒・銀・水色と10本全部違う色です。 普段着も黄色と緑のスカジャンとか派手なのばっかりです。 どういう印象を持ってしまうものか是非聞かせてもらいたいです。