プロが教える店舗&オフィスのセキュリティ対策術

現在カラーミキサーを作成中です。以下のサイトを参考に作成しております。
http://www.asahi-net.or.jp/~tk3t-ysok/flash/tuto …

このサイトでは色が変化する対象のMCは1つですが、現在作成中のものは色が変化する対象のMCを複数個にしています。
ステージには色を塗る対象で複数個のMC(A_MC,B_MC,C_MC)とカラーパレットのMCが配置してあります。
ここでA_MCを選択し、カラーパレットで色を選択したらA_MCの色が変化。B_MCを選択し、カラーパレットで色を選択したらB_MCの色が変化。Cも同様。

上記の様にしたいのですが、1つのMCのみなら色を変化させれたのですが、選択したMCの色を変化させる方法がわかりません。
どのようにしたらいよいのでしょうか。

ご教授のほど宜しくお願い致します。

A 回答 (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_ …


---注意---

色を変えたいオブジェクト(ムービークリップ)が複数ある場合,それらには必ず別々ののインスタンス名を付けてください。

また,オブジェクト(ムービークリップ)が _root にない場合は,

ycolor = new Color(_root[_root.obj]);

のパスを注意してください。
例えば,色を変えたいオブジェクト(ムービークリップ)が,_root にあるわけではなく,
「mov」というインスタンス名のムービークリップ内にある場合は,

ycolor = new Color(_root.mov[_root.obj]);

となります。

また,念のため,
_root の タイムラインの フレームのスクリプトには,

var obj = "実際に存在するインスタンス名";

というような感じで,あらかじめ,変数_root.obj に初期値を与えておいた方が良いかもしれません。
    • good
    • 0
この回答へのお礼

ご丁寧な回答有難うございます。
無事に解決することができました。

お礼日時:2006/03/04 16:36

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!