- ベストアンサー
選択したMCのカラーを変更させる
- 選択したMCの色を変化させる方法を教えてください
- 現在、カラーミキサーを使って複数のMCの色を変える方法を模索しています
- カラーパレットで色を選択すると、選択したMCの色が変わる仕組みを作りたいです
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
すごい参考URLですね。 その参考URLを全て理解したわけではありませんが, ここまですばらしい物をサンプルとして提供してくださっているのなら,あとは簡単なものでしょう。 引用: 『ステージに色を変える対象物(ここでは楕円)を配置し、 黒(#000000)に配色する。 これをシンボルに変換、インスタンス名をobjectとする。』 と書いてあるのですから,色を変更するオブジェクト名は object です。 このオブジェクトのインスタンス名を変えれば良いだけのことだと思います。 また,スクリプトの根幹は _root.onEnterFrame で動作しているわけてすから随時更新ということで,すごくラッキーな状態です。 色を変える対象物である object というインスタンス名は, 空白行を含む 19 行目 ycolor = new Color(_root.object); に登場しているだけです。 ここをとりあえず, ycolor = new Color(_root[_root.obj]); と書きかえます。 そして,色を変えたいオブジェクト(ムービークリップ)に, ---------------------------- on (release) { _root.obj = this._name; } ---------------------------- と書けば, _root の 変数obj に色を変えたいオブジェクト(ムービークリップ)のインスタンス名が代入されますから, そのオブジェクト(ムービークリップ)のインスタンス名が,即 _root の 変数obj に代入され, ycolor = new Color(_root[_root.obj]); が, ycolor = new Color(_root.インスタンス名); となり実行されます。 参考URL「インスタンス名の取得-設定」 http://homepage3.nifty.com/ginga-b/MX/inst_prop_name.html ---注意--- 色を変えたいオブジェクト(ムービークリップ)が複数ある場合,それらには必ず別々ののインスタンス名を付けてください。 また,オブジェクト(ムービークリップ)が _root にない場合は, ycolor = new Color(_root[_root.obj]); のパスを注意してください。 例えば,色を変えたいオブジェクト(ムービークリップ)が,_root にあるわけではなく, 「mov」というインスタンス名のムービークリップ内にある場合は, ycolor = new Color(_root.mov[_root.obj]); となります。 また,念のため, _root の タイムラインの フレームのスクリプトには, var obj = "実際に存在するインスタンス名"; というような感じで,あらかじめ,変数_root.obj に初期値を与えておいた方が良いかもしれません。
お礼
ご丁寧な回答有難うございます。 無事に解決することができました。