![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_09.png?e8efa67)
Flashで地図を作成しています。
大きめの地図なのでマスクをかけ、ドラックすると地図が移動され、非表示になっている箇所も表示できるように作成しました。
この地図に対して、更に各地名インスタンスを複数選択でき、選択された地名を地図横にテキストとして羅列させる仕組みを作りたいと思います。
移動する時の動作として、配置している全体地図をmap_mcとし、そのムービークリップに対して下記のようにスクリプトを記述しました。
onClipEvent (load)
{
press_flg = false;
drag_flg = false;
}
//マウスのボタンが押されたら
onClipEvent(mouseDown)
{
press_flg = true;
}
//マウスポインタが動かされたら
onClipEvent(mouseMove)
{
if(press_flg && (!drag_flg))
{
hidari = Stage.width-this._width/1.22;
ue = Stage.height-this._height/1.2;
migi = this._width/3.6;
sita = this._height/3.3;
this.startDrag(false, hidari, ue, migi, sita);
drag_flg = true;
}
}
//マウスボタンが押されて離されたら
onClipEvent(mouseUp)
{
if(drag_flg)
{
this.stopDrag();
}
else
{
※空欄;
}
press_flg = false;
drag_flg = false;
}
//マウスボタンが押され、範囲外で離されたら
on(release, dragOut)
{
this.stopDrag();
press_flg = false;
drag_flg = false;
}
今は動作確認のため、「※空欄」箇所にgetURLなどの記述をしていますが、ここにどのようなスクリプトを記述すれば希望の動作をするのかわからず、ネットで検索しても参考になるものを見つけられずにいます。
よろしくお願いします。
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";
}
}
------------------------------------
こういうもの(便利なアプリケーション)を作成しだすと,
いろんな機能やいろんな場合が考えられて,たいてい作業が長く長くかかります。がんばってください。
ありがとうございます!
うまく地名が表示できるようになりました!
余談…という事で、「地名の選択ミス」があった場合のスクリプトも書いていただきましたが、とても参考になりました。
BlurFiltanさんのおっしゃる通り、作り出していくと本当にいろんなケースが考えられて悩ましい限りです。
こういうのはやはり経験がものを言うのでしょうね。
初心者の私がチャレンジするのは無謀なアプリケーションかも知れませんが、Flashを理解するいい機会なので、ヘコタレずにがんばろうと思います。
本当にありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・「I love you」 をかっこよく翻訳してみてください
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・昔のあなたへのアドバイス
- ・かっこよく答えてください!!
- ・あなたが好きな本屋さんを教えてください
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・【大喜利】【投稿~8/27】 こんなガソリンスタンド二度と来るか!なぜそう思った?
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・【お題】動物のキャッチフレーズ
- ・【お題】甲子園での思い出の残し方
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・自分用のお土産
- ・人生で一番お金がなかったとき
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・ちょっと先の未来クイズ第1問
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
potplayerについて質問です
-
VBAのコンボボックスの年月表示...
-
AS3.0 二次元配列でムービーク...
-
ダウンロードしたデジブックはa...
-
アメブロで音声ファイルを貼る方法
-
何種類の値があるかを調べる方...
-
Flashでランダムクイズゲームを...
-
FLASHでゲームを作っていた人は...
-
この曲はなんでしょう?
-
laptop go2からの買い替え、lap...
-
スクリップト
-
私のコンピューター上のファイ...
-
arduino プログラムについて
-
chrome flash
-
FLASHの再生はできないのでしょ...
-
フラッシュゲームアーカイブ2
-
ウェブサイトで Flash が事実上...
-
Flashコンテンツを使ったWebサイト
-
Flash Playerのサポートが終了
-
Form内のselectを連動させるに...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
action scriptでボタンを押した...
-
【ActionScript】Listコンポー...
-
スライド式メニューにボタンを...
-
ムービークリップ内の複数のボ...
-
ドラックすると移動し、クリッ...
-
ボタンクリック一回ですべての...
-
photoshopで書いた四角の枠の中...
-
Pythonを使ってせん断応力図、...
-
python ボタンを押すと複数の関...
-
VBAで改行の入ったデータの正規...
-
【VB.NET】別Formのボタンが押...
-
別のアプリケーションのテキス...
-
VBScriptでMsgBoxのYesNoボック...
-
変数に256文字以上のテキストを...
-
テキストボックスの中身をリセ...
-
テキストボックスにセルの値を...
-
UWSCのBTN関数について。
-
else if文の順序を変えることに...
-
POIでのテキストボックス作成に...
-
【Photoshop】レイヤー効果の境...
おすすめ情報