ある矩形をフレーム上に配置し、モーショントゥイーンを使って透明度と色の変化をつけようとしましたが、透明度は出来ても色の変化が出来ません。
そこで、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値)は正しく変化しましたが、色が
変わりません。どこに問題があるのでしょうか?。
どうぞ宜しく御願い致します。
No.2ベストアンサー
- 回答日時:
Color.setTransform は、ムービークリップのカラー効果の「詳細」( MX では「高度な設定」)と同様の機能です。
ActionScript でなくてもモーショントゥイーンと「詳細」を利用して、色とアルファが同時に変化するアニメを作ることはできます。ただし、思い通りの色を作るのはなかなか難しく、「詳細」の設定パネルでスライダを調節しながらやっても、全く変化していないように見えることはよくあります。
setTransform および「詳細」では、元の色のRGB値と変換用のパラメータを元に計算が行われ、新しいRGB値が決まります。
ra のように”a”で終わる数値は元の値をどのくらいにするかの割合で、値の範囲は -100 ~ 100 です。ご質問文のスクリプトでは ra に 255 と範囲外の値を渡しているため、変換が失敗しているのではないでしょうか。
このあたりの動作原理や詳しい計算式は以前回答したことがありますので、よろしければご参照ください。
・setTransform()で設定した色をgetRGB()で取得するのは無理でしょうか
http://okweb.jp/kotaeru.php3?q=784847
setTransform は色調補正のような意味が強く、ムービークリップで使用されている全ての色に影響を及ぼします。
例えば、黒で輪郭線を描いた絵に setTransform をかけると、輪郭線の色が純粋な黒ではなく色合いが変わったり、あるいは全く違う色になってしまうことがあります。
Flash MX には、Color オブジェクトを使って車のボディカラーを変化させるというサンプルが付いていました。
RGBそれぞれを調節して色を作れるようになっているのですが、車の輪郭線やハイライトの色は全く変化しないにもかかわらず、陰影はボディカラーとともに微妙に変化しているのが不思議で、どうやっているのかと思ったものですが、そのカラクリのタネはといいますと。
車の大まかな形を、単色で線のないムービークリップで作り、このムービークリップの色を Color.setRGB で変化させます。
車の細部や陰影は、モノトーンで半透明・透過情報を加えたPNG画像として別に作っておき、ムービークリップの上に重ねてあっただけでした。PNG 画像側のアルファ値が 100 %ならムービークリップの色が透けないため、変化しません。色が変化すると困る輪郭線やハイライトはアルファが100%になっています。半透明の時は、下にあるムービークリップの色とのアルファブレンドが行われるので、ボディの色の影響を受ける陰影はアルファを利用したグラデーションで付けられていたというわけです。
とても単純な、それでいて賢い方法で、なるほどと思ったサンプルでした。
setRGB は setTransform に比べて扱いが簡単で、処理も軽いです。
無理に setTransform を使わずとも、こんな方法もあるということで、ご参考までに。
No.1
- 回答日時:
回答ではありませんが、モーショントゥイーンでできますよ。
キーフレームからキーフレームにモーショントゥイーン設定し、設定変更したいキーフレーム上のオブジェクトを選択してプロパティの「カラー」の「高度な設定」でできます。数値的にややこしいので、やり方としては、「高度な設定」ではなく、「着色」で一旦色を設定し、次に「高度な設定」を選択し、「設定」ボタンをクリックします。すると、「着色」の時の色がそのまま設定されていますので、あとは「アルファ」の数値を設定すれば、色も設定でき、アルファ値も同時に設定できます。ちなみにこの設定はFlashMXを参考に説明しています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript ソースコードのいじる場所が分かりません。 1 2022/12/23 02:06
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
- Visual Basic(VBA) エクセルVBA ダブルクリックしたら色反転を指定したセルのみにしたい 2 2022/04/06 12:52
- JavaScript 画像の表示位置 3 2022/12/23 08:25
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- HTML・CSS アコーディオンメニューが思うように動作しません。 1 2023/08/20 16:48
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- 化学 身の回りの化学 3 2022/05/11 17:45
- 画像編集・動画編集・音楽編集 gimp or photoscapeXで背景画の透明度を変える方法 5 2022/12/20 14:13
- 化学 フェノールフタレイン溶液の酸性から塩基性への色の変化は透明→赤ですか?透明→赤紫ですか? 1 2022/07/04 23:42
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
フラッシュゲームアーカイブ2
-
VBAのコンボボックスの年月表示...
-
おもしろフラッシュのサイト名...
-
この曲はなんでしょう?
-
私のコンピューター上のファイ...
-
arduino プログラムについて
-
chrome flash
-
FLASHの再生はできないのでしょ...
-
Flashコンテンツを使ったWebサイト
-
Flashをブロックしないで
-
ダウンロードしたデジブックはa...
-
ad or script について
-
uwscでExcelに自動記入
-
パソコンのリカバリーについて
-
iPhoneです。 Adobeフラッシュ...
-
ロック画面に天気を表示したい
-
サイト構築の方法を教えてください
-
URLの/以降だけを入力したいです。
-
Adobe(マクロメディア)のFLAS...
-
adobe flash playerは無料です...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
FlashMX フェードアウト
-
Flashで、文字や絵を「ジュワー...
-
フレーム内に移動したい
-
ドロップフレームの計算をエク...
-
Access2010でサブフォームのフ...
-
phpで音を鳴らす
-
フレーム内のオプションボタン...
-
【C#】wavファイルの複数同時再生
-
VB6のスクロールバー付きフレー...
-
C#でDLLファイル読み込みを行う...
-
VBで動的に作成したパネルの上...
-
cisco catalystのトラブルシュ...
-
車の運転時のメガネ 縁なし(...
-
Flashで右クリックメニューにつ...
-
WEBブラウザの重複起動の禁止
-
WebBrowserでgoogle検索するには?
-
URLを隠す、または別アドレスな...
-
GetPrivateProfileString変値
-
2Dゲーム作成する際、アニメー...
-
C言語 バッファについて。
おすすめ情報