• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:コンボボックスでのMCの制御)

コンボボックスでのMC制御についての質問

このQ&Aのポイント
  • コンボボックスでMCを移動させる方法について質問です。現在は緑_mcと青_mcを個別に動かしていますが、青_mcを出現させた時に緑_mcも一緒に動かせる方法を知りたいです。
  • また、ピクセルを足すだけでは一方向しか動かないため、行ったり来たりする動きを実現するにはどのようなスクリプトを追加すれば良いかも教えて欲しいです。
  • 質問内容はややこしいですが、お助けいただけると幸いです。

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

  • ベストアンサー
  • perse
  • ベストアンサー率74% (113/152)
回答No.1

質問内容がいまいちよくわからないのですが、 >緑_mcを動かすコンボボックスで緑_mc、青_mc共に移動 これは緑_mcを動かすときに青_mcも一緒に動かせば良いだけです。 b_mc._x += event_obj.target.selectedItem.data; の下に d_mc._x += event_obj.target.selectedItem.data; または... 緑_mcの中に青_mcを入れてしまえば、 緑_mcを動かしただけで勝手に青_mcも動いてくれます _root  ├青_mc    ├緑_mc という階層にするということです。 ただし緑_mcのみを動かしている部分は 青_mc.緑_mc._x += 1; のように書き直さなければなりません。 よくわからないのは以下の部分です。 >青_mcの現在の座標位置を保ったまま 共に動かしたいのに保ったまま? >行ったり来たり出来るようにしたい >ピクセルを足すだけだと一方方向しか動きません。 引けば逆方向にも動くと思うのですが。 ここからは質問と関係ないのですが、 ifの場合分けをしている部分をもっと簡潔に書けると思います。 (省略された部分も他と同じだと考えると) まず シンボル2._x = b_mc._xが全てのifの中にあるのでif文の外に出せます。 そしてmy_Selの値によって b_mc._x = a_mc._x + 数値 としていますがこの数値の部分もコンボボックスのdata部分に入れてしまえばいいと思います。 data部分には何でも入れることが出来ます。 ですので配列を入れればいくつでも値を入れられます。(配列じゃなくてもいいんですが配列が便利です) //例------------------------------------------------------------- var myListener = new Object(); myCombo.addItem("a", ["a1", "a2"]); myCombo.addItem("b", ["b1", "b2"]); myListener.change = function(event_obj) { trace("一つ目 = "+event_obj.target.selectedItem.data[0]); trace("二つ目 = "+event_obj.target.selectedItem.data[1]); }; myCombo.addEventListener("change", myListener); //------------------------------------------------------------- 今回の場合ですと (本来のdataの値は私にはわからないので適当に100,200,300としています。) myCombo4.addItem("0",[100,0]); myCombo4.addItem("-0.5",[200,20]); myCombo4.addItem("-1",[300,40]); と追加しておいて、 myListener.change = function(event_obj) { b_mc._x = a_mc._x+event_obj.target.selectedItem.data[0]; シンボル2._x = b_mc._x; b_mc._x += event_obj.target.selectedItem.data[1]; }; という感じになります。

snowdrop25
質問者

お礼

perse様 返信が遅くなり申し訳ありません。 青_mcを緑_mcの中に入れたら、ちゃんと動きました。 ifの場合分けのところもすっきり整理することができました。 まだまだ分からないことだらけですが、挫折せずにFlashが使えるように頑張ります。 ありがとうございました。

関連するQ&A