• 締切済み

2つのコンボボックスを連動させたいのですが

DPEの回答

  • DPE
  • ベストアンサー率85% (666/776)
回答No.2

#1です。 まず、AとBのコンボボックスで選ばれたものの合計は、数値の演算であれば答えは常に1つではないでしょうか。 AとBの合計をCのコンボボックスに出力すること自体は可能ですが、項目が必ず1つに絞られるのであれば、Cをコンボボックスにしてもメリットがありません。 合計値を表示するだけで済むのなら、テキストフィールドなどでも充分です。 この話はとりあえず置いておきまして、ムービークリップを動かす件を整理しますと、  ・Aを選んだ時、Bの内容が変わる  ・Bを選んだ時、AとBで選択した値の合計でムービークリップが移動する とのことで、よろしいでしょうか? #1の例では、main で扱うデータを管理している配列変数は、フィールドが2つしかありませんでした。 今度は項目名と sub に表示するための配列変数のほかに、 main の各項目に設定しておく値が必要です。 ” label ”以外のフィールドは表示されないだけなので、他のフィールドを作れば1つの項目にいくつもの値を割り当てられますし、フィールドがいくつあっても全て同じ要領で取得することができます。 また、#1の作例は、sub の項目を選んだ時には項目の内容を単に trace アクションで表示するというものでした。 今回は sub の項目を選択した時の処理を、  ・ main で選ばれている項目を見て、値を取得  ・自分(= sub )の中で選ばれている項目を見て、値を取得  ・2つの合計を算出し、ムービークリップに反映させる このような内容に変更します。 ----------------------------------------------------------- 2つのコンボボックスでムービークリップを移動する・・・というのを、どのような場面で使うのかよく分からないのですが。 さしあたって、  ・ main コンボボックスで移動量の 10 の位を決める  ・ sub コンボボックスで移動量の1の位を決める  ・1の位の移動量を選択した時点でムービークリップを横に動かす という例を考えます。 ステージに ComboBox コンポーネントのインスタンスを2つ配置し、インスタンス名を付けてください。 #1と同様に” main ”と” sub ”とします。 もう1つ、動かすムービークリップをステージに配置して、これにもインスタンス名を付けます。 ここでは仮に” clip ”とします。 以上で準備は完了です。 次はスクリプトを書きます。 ******************** 2つのコンボボックス” main ”と” sub ”で選択されている項目の合計でムービークリップ” clip ”を動かすスクリプトは、次のようになります。 このスクリプトは、メインのタイムラインのフレームに設定してください。 (↓各行頭に全角のスペースが入っています。コピーする際は、全て半角のスペースかタブに置き換えてください)  ////////////////////////////////////////////////////////  //subコンボボックスで扱うデータ  ////////////////////////////////////////////////////////  //「10」のリスト  spd_1 = new Array();  spd_1 =  [   { label : "1" , fig_1 : 1 },   { label : "2" , fig_1 : 2 },   { label : "3" , fig_1 : 3 },   { label : "4" , fig_1 : 4 },   { label : "5" , fig_1 : 5 }  ];  //「20」のリスト  spd_2 = new Array();  spd_2 =  [   { label : "2" , fig_1 : 2 },   { label : "4" , fig_1 : 4 },   { label : "6" , fig_1 : 6 },   { label : "8" , fig_1 : 8 }  ];  //「30」のリスト  spd_3 = new Array();  spd_3 =  [   { label : "3" , fig_1 : 3 },   { label : "6" , fig_1 : 6 },   { label : "9" , fig_1 : 9 }  ];  ////////////////////////////////////////////////////////  //mainコンボボックスで扱うデータ  ////////////////////////////////////////////////////////  main_item = new Array();  main_item =  [   { label : "10" , data_array : spd_1 , fig_10 : 10 },   { label : "20" , data_array : spd_2 , fig_10 : 20 },   { label : "30" , data_array : spd_3 , fig_10 : 30 }  ];  ////////////////////////////////////////////////////////  //各コンボボックスのセットアップ  ////////////////////////////////////////////////////////   /*ここに、mainコンボボックスを選択した時の処理を書く*/  /************************************************/  //subコンボボックスに最初のデータを表示し、  //最初に選ばれている項目を”なし”にする  sub.dataProvider = spd_1;  sub.selectedIndex = undefined;  //リスナーの作成とsubコンボボックスが選択された時の処理を定義  sub_listener = new Object();  sub_listener.change = function( info:Object )  {   var spd_10 , spd_1 , spd;   //選択されている項目に対応する移動量を取得   spd_10 = main.selectedItem.fig_10;   spd_1 = info.target.selectedItem.fig_1;   //2つの合計で移動量を決定   spd = spd_10 + spd_1;   //ムービークリップを動かす   clip._x += spd;  };  //subコンボボックスのイベントリスナーを登録  sub.addEventListener( "change" , sub_listener ); main の項目が選択された時に sub の内容を書き換えるためのスクリプトは#1と同じですので、省略させていただきました。 #1のスクリプトの  //mainコンボボックスにデータを表示  main.dataProvider = main_item;     :     :  //mainコンボボックスのイベントリスナーを登録  main.addEventListener( "change" , main_listener ); ↑この部分までを追加してください。 ただし、今回は都合により  main.selectedIndex = undefined; この1行をコメントにするか、削除してください。 ******************** この例では、sub のコンボボックスで何かを選択するたびに1回、ムービークリップが指定された移動量( main と sub の合計)の分だけ右に移動します。 例えば、ムービークリップが常に動いていてコンボボックスではその速度を変化させるというような場合は、ムービークリップの動作は別のスクリプトを作る必要があります。 ムービークリップの動きを変数を使って作り、コンボボックスで求めた値をこの変数に代入すれば、コンボボックスでの選択を反映させることができます。 ポイントは、コンボボックスに設定するデータ(配列変数)の設計と、コンボボックスで選択されている項目からデータを取得する部分だと思います。 取得したデータをムービークリップにどのように反映させるかは、コンボボックスの制御とはまた別の問題です。

関連するQ&A

  • コンボボックスの連動

    コンボボックスの連動を実現したいです。 コンボボックスがAとBの2個あります。 Aにメーカーをセット 例) 1 エプソン 2 キャノン 3 HP Bに機種名をセット 例)Aでエプソンを選択したとき 1 EPシリーズ 2 PMシリーズ 例)Aでキャノンを選択したとき 1 PIXUSシリーズ 2 Sateraシリーズ コンボボックスAの選択内容により コンボボックスBの内容を変更したいです。 各A,Bの選択した値(1、2)も取得したいです。 よろしくお願いします。

  • コンボボックスを連動させる仕組みの正式名称は?

    コンボボックスAとBの二つがあります。 Aで選択された項目によって、Bの選択できる内容が変化する、というよくあるコンボボックスの仕組みですが。。 こういった仕組みの正式名称などはあるでしょうか?(Accessでは○○、Javaでは××という、など。。) 特に.NETにおける正式名称などがあったら、教えて頂けると嬉しいです。 ご助言よろしくお願い致します。

  • accessのコンボボックスを連動させた結果の反映

    access2002を使用しています。必要に駆られて勉強を始めましたが行き詰ってます。 初歩的な質問ですが宜しくお願いします。 AとBのコンボボックスでAで特定値を入れたときにその結果を再クエリでBの選択肢を絞り込むコンボボックスを作成しています。 http://oshiete1.goo.ne.jp/qa1413361.html の返答を参考にその通りの物を作ってみたのですが、(以下) 反映されたデータの入力テーブルの氏名入力にも、所属部が入力されてしまいます。Bのコンボボックスで選択した氏名を〔反映されたデータの入力〕テーブルの〔氏名入力〕に反映させたい場合はどのような変更を加えれば良いのでしょうか? ご指導頂ければ幸いです。

  • Excelマクロのコンボボックスについて

    初めてマクロを扱います。 マクロに詳しい方、コードをご教授ください。 Excelマクロを使い下記の機能をシートに盛り込みたいと考えております。 【実現したいこと】 ・シート上にコンボボックスを作成し、コンボボックスで選択した項目で絞り込めるようにする。 ・コンボボックスに格納される項目は、A列の重複を除外し、昇順で並べ替えたもの。 ・またコンボボックスに格納する項目は日々レコード追加されるため、コンボボックスの中身にも随時反映するようにしたい。 ・コンボボックスには「全て表示」というアイテムを追加し、「全て表示」を選択すると、フィルターが解除される。 わかりにくいかもしれませんが上記のことを実現したいと考えております。 どうかお知恵をお貸しください!! よろしくお願いします!!

  • あるコンボボックスを選択するともう一方のコンボボックスが自動的に決まる方法

    二つのコンボボックスがあります。 1つのコンボボックスをcb1、もう一方のコンボボックスをcb2とします。cb1の中にはA、B、Cという項目があります。 質問の内容は、例えばcb1のAを選択するとcb2の項目が自動でa、b、cになっている、cb1のBを選択するとcb2の項目が自動でd、e、fになっている、ということなのです。 こんな感じに自動的に状態が変化することは可能なのでしょうか?宜しくお願いします。

    • ベストアンサー
    • Java
  • コンボボックス

    コンボボックスから選択した内容によってそれに関するコンボボックスの内容を変えたいと思っています。 例えば コンボボックスA 書類1  分類a 書類2  分類a 書類3  分類b 書類4  分類c コンボボックスB 提出先1  分類a 提出先2  分類b 提出先3  分類b 提出先4  分類c と言う風になっているのですが、 コンボボックスAの書類1を選択したらコンボボックスB と共通の分類の提出先名がコンボボックスに表示したいのです。 書類3を選択すると、コンボボックスBには提出先2、提出先3が表示されるといった感じです。 ACCESS2000を使用しています。 よろしくお願いします。

  • Access2003コンボボックスについて

    Access2003の勉強を始めたばかりの初心者です。 コンボボックスについて初歩的な事かもしれませんが、お教え下さい。 他のコンボボックスと連動するコンボボックスを作りたいと思っております。 具体的には、A・B・Cと3つのコンボボックスを作り、Aがブランクの状態ならB・Cブランク、Aに値が入ったらそれに伴った絞り込み結果をB・Cへ。 Bに値が入った場合は、その結果をCへ。 と言う様な処理を考えています。 用途はAに都道府県Bに市区町村Cに個人名を表示する予定です。 AからB・Cの連動は出来たのですが、あの値を反映したBからCへの連動処理ができません。 どなたかご存知方いらっしゃいましたら、ご教授お願い致します。

  • vb6のコンボボックスの操作について

    おはようございます。 vb6+MDBの環境下で、コンボボックスについて質問です。 マスタとなるテーブルA(都道府県など)と、一般的(?)なデータを日々貯めていくテーブルBがあり、 Bに、Aのキーとなる値が保存されています。 テーブルデータBの表示・更新画面を作っているのですが、 テーブルAの内容を画面上のコンボボックスに選択項目としてADDして表示するところまでは出来たのですが、以下のことを実現するには、コンボボックスにどういう記述で実現するのかわかりません。 1.テーブルBに持っているAの都道府県コードに該当する項目を、Bのデータ選択時に表示したい。 【テーブルA】 Aのキーコード,都道府県名 【テーブルB】 Bのキーコード,Aのキーコード,住所… このような場合、イベント時にコンボボックスをどのように処理するようにソースを書けば実現できますか?

  • ユーザーフォームのコンボボックス

    エクセルのユーザーフォームでの質問です。 コンボボックスの項目についてsheet2のB2~B10を選択したいのですが、このユーザーフォームはsheet1で使うもので、プロパティのrowsource欄にセルを選択できません(やり方が分かりません)。 どう入力したら別シートのセルをコンボボックスに反映出来るのでしょうか??

  • コンボボックスで新規登録する場合

    こんにちはアクセス初心者です。 コンボボックスの扱いについて行き詰っています。 説明が下手ですがどうぞよろしくおねがいします フォームAで コンボAとコンボBの 2つのコンボボックスを連動しています コンボAで選んだ発注者名を選択して詳細項目を表示し、 その担当者をコンボBで絞込み 担当者の詳細情報を表示しています コンボAに項目がない場合、 別ウィンドウで入力フォームが開き 新規登録後、その値が即座に反映され、 コンボBにはその抽出された値が表示され、 更にコンボBに項目が無い場合も同様に 登録作業をしたいのですが どういう方法が一番いいのでしょうか? 一番の理想としては コンボAを選択すると A社 B社 C社 新規登録 というようなリストが表示され 新規登録を選択すると 別ウィンドウで登録フォーム開き 複数項目を入力、OKを押すとその内容が フォームAに反映され コンボBの選択へ。 コンボBには 田中 佐藤 新規登録 と表示されている状態が理想です コンボAで顧客コードを選択すると 他の内容を下記のように VBAでフォーム上のテキストボックスに反映させています Private Sub コンボA_AfterUpdate() Me!担当者名コンボ.Requery '内容反映 Me.〒 = Me.顧客名コンボ.Column(2) Me.現住所 = Me.顧客名コンボ.Column(3) Me.電話番号 = Me.顧客名コンボ.Column(4) コンボA SELECT 顧客マスタ.顧客コード, 顧客マスタ.顧客名, 顧客マスタ.〒, 顧客マスタ.現住所, 顧客マスタ.電話番号 FROM 顧客マスタ ORDER BY 顧客マスタ.顧客コード; コンボB SELECT 担当者マスタ.担当者コード, 担当者マスタ.担当者名, 担当者マスタ.携帯番号, 担当者マスタ.顧客コード FROM 担当者マスタ WHERE (((担当者マスタ.顧客コード)=[forms]![フォームA]![コンボA])) ORDER BY 担当者マスタ.担当者コード; 別ボタンで新規登録をつくり リストに無い場合はフォームを表示させ テーブルに保存させるという方法も試しましたが デザイン上の問題があって とても小さなスペースしかとれず、 コマンドボタンをおくスペースもとるのが難しい感じなので できればコンボボックスだけで解決したいのですが。。 どなかた教えていただけると助かります どうぞよろしくおねがいいたします