• 締切済み

ComboBoxでmcを移動させるには

お世話になります。 コンポーネントのComboBoxでリストから項目を選択して、一つのムービークリップを等間隔で移動させたいと思っています。 例えば、 +10.0を選択するとmcが右に1300px移動 +3.0を選択するとmcが右に390px移動 +1.0を選択するとmcが右に130px移動 0はデフォルト -1.0を選択するとmcが左に130px移動 -3.0を選択するとmcが左に390px移動 -10.0を選択するとmcが左に1300px移動 というような感じに作るにはどうしたら良いでしょうか? なるべく簡単な方法でできるとありがたいです。 どうぞ宜しくお願いいたします。 環境:Windows XP、Flash Professional 8

みんなの回答

noname#35109
noname#35109
回答No.1

なるべく簡単な方法というのは, なるべく ActionScript を使わない方法と考えてよろしいでしょうかね。 まず, メインムービーのステージ上(_root)に, 右や左に動くムービークリップを作成します。 ムービークリップを作成しましたら, そのムービークリップを選択した状態で, 下のプロパティインスペクタ(プロパティパネル)でインスタンス名を付けます。 仮に 「my_mc」 というインスタンス名を付けて置いたとします。 次に,コンポーネントパネルから, ComboBox をステージ上にズルズルと引っ張り出してきます。 つまりステージ上に ドラッグ&ドロップ します。 そして, 引っ張り出してきた ComboBox を選択した状態で, プロパティインスペクタでインスタンス名を付けます。 仮に 「myCombo」 というインスタンス名を付けて置いたとします。 さらに, プロパティインスペクタでのタブの一番右横にある, 「パラメータ」タブを選択して, ComboBox のパラメータを設定して行きます。 パラメータ の data という欄が, [1300,390,130,0,-130,-1300] となるように, data の欄をダブルクリックして     値  0 | 1300  1 | 390  2 | 130  3 | 0  4 | -130  5 | -390  6 | -1300 のように,「+」ボタンをクリックしながら各値を埋めて行きます。 さらに, パラメータ の labels という欄が, ["+10.0","+3.0","+1.0","0","-1.0","-3.0","-10.0"] となるように, labels の欄をダブルクリックして     値  0 | "+10"  1 | "+3.0"  2 | "+1.0"  3 | "0"  4 | "-1.0"  5 | "-3.0"  6 | "-10.0" のように,「+」ボタンをクリックしながら各値を埋めて行きます。 そうしましたら, ステージの上ののタイムラインで,新規レイヤーを追加して, そのレイヤーを ActionScript のためのレイヤーと勝手に決めておいて, その新規レイヤーの ComboBox (myCombo) や,mc (my_mc) のある同じキーフレームに次のように書きます。 ---------------------------------------- // myCombo をデフォルトの 0 を選択状態にしておく myCombo.selectedIndex = 3; // リスナーオブジェクトを作成する var myListener = new Object(); // 関数をリスナーオブジェクトに割り当てる myListener.change = function(event_obj) { // my_mc を data の値の分ずつ移動 my_mc._x += event_obj.target.selectedItem.data; }; // リスナーを追加する myCombo.addEventListener("change", myListener); ---------------------------------------- ComboBox というようなFlash的ではないもの(Flex的なもの)を, 私は個人的には極力使わない主義ですから, 私も使い慣れてはいませんが,ヘルプには上のような内容が書いてあります。 こういうもの(悪く言うと手抜きするための既製品)は, あまり Flash の解説サイトなどに一々説明を書いていませんから, ヘルプを見ながらその都度作ってみるのが良い方法だと思います。 Flashドキュメンテーション (つまりヘルプのオンライン版) 「ComboBox.change」 http://livedocs.adobe.com/flash/8_jp/main/00003171.html 「ComboBox.selectedItem 」 http://livedocs.adobe.com/flash/8_jp/main/00003194.html

snowdrop25
質問者

お礼

ご回答ありがとうございます。 本などでコンポーネントの説明やサンプルが本当に載っていないので、 大変助かりました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • cs4 モーショントゥイーンしているムービークリップを移動

    cs4 モーショントゥイーンしているムービークリップを移動 例えば、ムービークリップに右から左へ移動するトゥイーンを作成した場合、 後で、全体的に下へ100pxぐらい移動させてい場合、 どうしたらよいのでしょうか? ムービークリップ全体を選択できず、 最初や最後だけしか移動できず、ななめに動いてしまいます。 シンボル内の元画像を動かせばできなくないですが、 座標がずれるのであまりこの方法はやりたくありません。 トゥイーン全体を移動させる方法を教えてください。 よろしくお願いいたします。

    • ベストアンサー
    • Flash
  • ComboBoxについて

    ComboBoxのセレクトした部分を変える方法はないでしょうか? dataに[0,1,2,3,4]、labelsに[1,2,3,4,5]としたComboBoxを用意し、それを選択するとdataを変数に記憶させておき、別ボタンで隣のフレームに移動させます。 再度このComboBoxのあるフレームに移動した場合、読込時に先ほど選択した位置に変える方法が見つからず困っています。 this.selected = dataの入った変数 などいろいろ試してみましたが無理でした。 FlashMX Professional2004 7.0.1 を使用しています。

    • ベストアンサー
    • Flash
  • AS3.0で子MCから他の子MCのフレームへ移動

    Flash professional CS5を使用してAS3.0で記述しています。 メインのタイムラインにフレームラベルが二つ(main1とmain2)あります。 main1にはステージにムービークリップのmc1が,main2にはmc2が配置してあります。 さらに, こういう書き方でいいのかわかりませんが; mc1内にはフレームラベルsub1,sub2があります。 同様に, mc2内にはフレームラベルpart1,part2があります。 sub1ではボタン(btn1)があり,押すとフレームラベルsub2に進むようになっています。(確認済み) sub2にもボタン(btn2)が用意してあり押したらムービークリップmc2内のpart2に移動させたいと考えています。 フレームラベルsub2で btn2.addEventListener(MouseEvent.CLICK, Click2); function Click2(evt:MouseEvent):void{ MovieClip(parent).gotoAndStop("main2"); } と記述すればメインタイムラインのフレームラベルmain2に移動することは確認しました。 しかしフレームラベルpart2へ移動するにどのように記述したらよいかわかりません。 MovieClip(parent).mc2.gotoAndStop("main2"); としてもやはりmc2が未定義なので無理なのでしょうか? もしそうでしたらmain1の段階で定義しようかと思うのですが,その場合はどのように記述すればよいのでしょうか? つまり,メインタイムライン上における後ろのフレームラベルの子のフレームラベルに移動したいです。 説明がうまくできないので図も載せます。 http://www1.axfc.net/uploader/Img/so/99986 よろしくお願いいたします。

    • ベストアンサー
    • Flash
  • ActonScriptでムービークリップの移動

    お世話になります。 a_mc b_mc の2つのムービークリップがあり、 +-のボタンを押すとそれぞれ左右に130pxずつ動くようにスクリプトを記述しています。 (例) on (release) { a_mc._x -=130; b_mc._x -=130; } とか on (release) { b_mc._x -=130; } a_mc、b_mcは一緒にも個別にも移動できるようにしております。 a_mc、b_mcどちらも動くようにして、なおかつボタンを設けてそれを押せばb_mcをどんなに移動させていても 1クリックでa_mcの位置に戻るようにさせたいのですが、どうやったら出来るのか分かりません。 Point.clone()とか使えばいいのかと思ったのですが、a_mcの座標位置が変わるとうまく動きません。 分かりにくい説明で申し訳ないのですが、本当に困っています。 初心者なので分かりやすく説明していただけるとありがたいです。 どうぞ宜しくお願いいたします。 環境: WindowsXP、Flash Professional 8

    • ベストアンサー
    • Flash
  • Flash5:マスクの移動について

    Flash5を使用しています。 マスクの移動について教えてください。 マスクレイヤーにムービークリップ(MC)を置き、 そのMCをトゥイーンで移動させることで、マスクを移動させることはできるのですが、 トゥイーンではなく、そのMCの座標値(たとえば「MC._x」)の変化で、移動させようとすると、うまくいきません。 プリロード用なので、座標値で移動させたいのです。 どなたか、ご存じの方、お答え願います。

  • ボタン化されたMCの移動

    ホームページの中の小バナーをクリックすると表示される新規ページの全画面Flashを作っています。 http://www.facial-index.com/ 上記のページをクリックすると別窓で表示される新規ページの全画面Flashでは、「consept」等のナビゲーションをクリックすると画面構成が変わりますが、ナビゲーションは右の方に移動します。 このナビゲーションはMCをボタン化したものですよね。 このボタン化されたMCを押すと画面が変わる方法はフレームにラベルをつけて、そのラベルに飛ぶ設定を考えています。 わからないのは画面が変わる際に、すべてのボタン化されたMCが右の方に移動するASをどのように設定すればいいかということです。 どなたかご教授いただけませんでしょうか。 よろしくお願いいたします。

    • ベストアンサー
    • Flash
  • MC間でMCをやり取りできますか?

    質問は初めてですがよろしくお願いします。 深度入れ替えの関係で(簡略化のため)、MCを似たような深度ずつに親MCにまとめる構造で作成してきました。 しかし、このやり方では、当初予定していた深度の移動はできますが、予定外の深度の移動が、不可能になりました。 やりたいこと _root.a.mc のような構造の中のmcというムービークリップを、 _root.b.mc の階層に移動したいのです。mcの持つ変数等も一緒に移動できるのが好ましいです。 不可能であれば、 attachMovie()、removeMovieClip()あたりを使って負荷のかかりそうなやり方で我慢しようとは思っています。 ParaFla!使用・SWF8:FLASH8相当の設定で製作中

    • ベストアンサー
    • Flash
  • MovieClip上のComboBoxを透過させる方法

    現在FlashCS3でActionScript3.0でコンテンツを作製しています。 通常、MovieClipA(以下MC_A)の子としてMovieClipB(以下MC_B)を配置し、親オブジェクトであるMC_Aのalpah値0にすると、その子であるMC_Bも透過率は0になり、全く見えない状態になります。 しかし、MC_Aの子としてUserInterfaceコンポーネントであるComboBoxを配置して上記と同様、MC_Aのalpha値を0にしても、外観(通常状態のスキン)は透明になりますが、Labelの文字は透明になりません。 また、MC_Aのalpha値を0にした状態(外観上はLabelの文字のみ見える状態)で、ComboBoxをクリックすると、選択状態のスキンやドロップダウンスキンはalpha値の影響を受けずにLabelの文字と同様に見える状態になってしまいます。 まとめますと、表示リスト上に配置されたComboBoxに対して、その親オブジェクトのalpha値を0にした際に、その子であるComboBoxの全てのスキンへ対してもalpha値を適用する為にはどのようにすればよろしいのかをお伺いします。 関連するようなサイトや書籍も調べてみましたが、上記のような現象については言及されておらず、困っております。 ヒントとなる情報や解決法などがございましたらご教授頂ければ幸いです。 最後に、上記の説明中の用語や用例などに誤りなどがございましたらご容赦ください。

    • ベストアンサー
    • Flash
  • 【action script】複数のMCを・・・

    環境:Flash8 actionscript2.0 10こ程度のムービークリップをそれぞれクリックした時に同じ動きをさせる文を1つにまとめることは可能でしょうか? ムービークリップそれぞれに mc1 mc2 mc3 …mc10 とインスタンス名をつけています。 さらにその下位層に mc1  └kai_mc mc2 └kai_mc ・ ・ ・ mc10 └kai_mc と置いています。 このそれぞれのムービークリップをクリックした際、その下位層のムービークリップを次のフレームに移動させたいと考えています。 それぞれ個別に書くと _root.mc1.onRelease=function(){ _root.mc1.kai_mc.nextFrame() } と書いていたのですが、ムービークリップの数を増やすかも知れずムービークリップの数分書くのは大変なので1つにまとめたいと考えています。 自分で以下のように書いてみました。 i=0 for(i=1; i>10; i++){ _root["mc"+i].onRelease.function(){ _root["mc"+i].kai_mc.nextFrame() } } うまくいかないので試行錯誤したりtraceで調べたりしたのですがどうもよくわかりません。 i=0 for(i=1; i>10; i++){ _root["mc"+i].onRelease.function(){ trace(i) } } で出力すると 11と表示されるのでpassが違うとは思うのですが・・・ iを1~10で指定しているのになぜ11となるのでしょうか? どうすればpass指定できるのでしょうか? そもそものやり方、考え方が違うかどうかも含め、教えて頂きたく質問しました。 よろしくお願いします。

    • ベストアンサー
    • Flash
  • ボタンを押すとMCが大きくなるFlash

    AdobeCS4、ActionScript2.0で、ボタンを押すとMCが大きくなるFlashを作ろうとしているのですが、 上手く動かないので質問させていただきます。 画面上に、ボタンと四角のムービークリップがあり、 ムービークリップの上にダイナミックテキスト(変数名point)でボタンを押した回数を表示させて、 ボタンを押すとMCが大きくなるようにしたいのです。 ボタンを押して回数を数えさせるのは、 on (press) { point = +1; } で出来るようになりました。 MCを大きくするのも、過去の質問を参考にしたら出来るようになったのですが、 この二つを合わせると動かなくなってしまいました。 また、過去の質問http://okwave.jp/qa/q4271772.html これだと、ずっと大きくなってしまうので、ある程度大きくなったら、 大きくなるのを止めたいのですが、それも上手くいきませんでした。 どうしたらいいのか、教えていただけますでしょうか? よろしくお願いします。

    • ベストアンサー
    • Flash