• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ドラックすると移動し、クリックすると地名インスタンスが複数選択される地図作成)

ドラックすると移動し、クリックすると地名インスタンスが複数選択される地図作成

このQ&Aのポイント
  • Flashで作成した大きめの地図をドラックすることで移動でき、クリックすると複数の地名インスタンスを選択できる仕組みを作成しています。
  • 地図作成にはマスクを使用し、非表示になっている箇所も表示できるようにしています。
  • 希望の動作をするためには、「※空欄」箇所に特定のスクリプトを記述する必要がありますが、具体的な方法はわかりません。

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

  • ベストアンサー
  • BlurFiltan
  • ベストアンサー率91% (1611/1754)
回答No.1

各地名インスタンスをムービークリップで作成して,map_mc の中に入れます。 そして, 地名を地図横にテキストとして羅列させるための 複数行入る縦長のダイナミックテキストを _root に作成します。 仮に上の各地名インスタンス は5つであったとして, 「area1_mc」,「area2_mc」,…,「area5_mc」 というインスタンス名を付けておいたとします。 また, 地名表示用のダイナミックテキストには 「choice_txt」 という "インスタンス名" を付けておいたとします。 階層構造は次のような感じになるということです。  _root   ├ choice_txt   └ map_mc      ├ area1_mc      ├ area2_mc      ├ area3_mc      ├ area4_mc      └ area5_mc このようにした場合, ご質問で書かれていらっしゃるスクリプトの「※空欄;」部分は, 次のような感じにすれば良いと思います。 if (this.area1_mc.hitTest(_root._xmouse, _root._ymouse, true)) { _root.choice_txt.text += "江戸町\r"; } if (this.area2_mc.hitTest(_root._xmouse, _root._ymouse, true)) { _root.choice_txt.text += "明治町\r"; } if (this.area3_mc.hitTest(_root._xmouse, _root._ymouse, true)) { _root.choice_txt.text += "大正町\r"; } if (this.area4_mc.hitTest(_root._xmouse, _root._ymouse, true)) { _root.choice_txt.text += "昭和町\r"; } if (this.area5_mc.hitTest(_root._xmouse, _root._ymouse, true)) { _root.choice_txt.text += "平成町\r"; } 地名は地名で辻褄が合うように配列などに地名データとして格納しておけば, for文 などループ文の使用でもっとスマートに書けるとは思います。 以上は, そういうスマートな記述方法を説明した回答ではなく, あくまでも,やり方の一例の大筋を回答したものだと思ってください。 ======================================== なお,余談ですし, こういうことを書き出すときりがなくなってしまうのですが, 地名の選択ミスをすることも考えられます。 もし上のようなスクリプトにしたとして, 地名の選択ミスをした場合, その今選択した町名を1つだけ消すボタンを用意するとするならば, そのボタンには次のように書けば良いと思います。 ------------------------------------ // map_mc 上にボタンがあるときのみ必要 on (press) { _root.map_mc.drag_flg = true; } on (release) { txtArr = _root.choice_txt.text.split("\r"); txtArr.pop(); txtArr.pop(); if (txtArr.length == 0) { _root.choice_txt.text = ""; } else { _root.choice_txt.text = txtArr.join("\r")+"\r"; } } ------------------------------------ こういうもの(便利なアプリケーション)を作成しだすと, いろんな機能やいろんな場合が考えられて,たいてい作業が長く長くかかります。がんばってください。

noragoro
質問者

お礼

ありがとうございます! うまく地名が表示できるようになりました! 余談…という事で、「地名の選択ミス」があった場合のスクリプトも書いていただきましたが、とても参考になりました。 BlurFiltanさんのおっしゃる通り、作り出していくと本当にいろんなケースが考えられて悩ましい限りです。 こういうのはやはり経験がものを言うのでしょうね。 初心者の私がチャレンジするのは無謀なアプリケーションかも知れませんが、Flashを理解するいい機会なので、ヘコタレずにがんばろうと思います。 本当にありがとうございました。

関連するQ&A