• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:シンボルをドラッグアンドドロップした場所により処理を変える)

シンボルをドラッグアンドドロップした場所により処理を変える

このQ&Aのポイント
  • シンボルをドラッグアンドドロップした場所により処理を変える方法について初心者です。
  • ステージの上部にシンボルが横に並び、下部は色分けされていますが、赤色部分にシンボルをドラッグすると貼りつきます。
  • 他の色の部分にドラッグされた場合は元々の位置に戻る仕組みを作りたいです。どのようにすればいいでしょうか?

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

  • ベストアンサー
noname#35109
noname#35109
回答No.1

Flash の バージョンを書かれていませんが, 以下は,勝手に Flash MX 以上(MX,MX2004 ,8)として回答します。 ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ Flash 5 以降であれば, hitTest (当たり判定) を使うのが一般的だと思います。 まず,○と×と□を,それぞれのムービークリップ(MC)に変換します。 (してあったらそのままでかまいません。) 次に,円グラフのような 赤 青 黄 の塗りの部分も, ムービークリップ(MC)に変換します。 そして,赤 青 黄 ,それぞれの MC にインスタンス名を付けるのですが, 赤の塗りの MC なら, その赤の塗りの MC を選択した状態で, 下のプロパティインスペクタで, 「redMC」 というインスタンス名を付けておきます。 青い塗りの MCなら, 「blueMC」 黄色い塗りの MCなら, 「yellowMC」 とそれぞれ,インスタンス名を付けます。 そして, ○ の MC (インスタンス名特になし)を選択して その ○ の MC に次のスクリプトを書けば, おそらく OK だと思います。 ---コピペ可能----------------------- // この MC が表示されたとき onClipEvent (load) { // この MC の初期座標を記録 var my_x = this._x; var my_y = this._y; } // この MC がマウスプレスされたとき on (press) { // この MC のドラッグをスタート this.startDrag(); } // この MC からマウスアップされたとき on (release) { // この MC のドラッグをストップ this.stopDrag(); // もし, redMC と マウス がヒットして "いな" ければ if (!_root.redMC.hitTest(_root._xmouse, _root._ymouse, true)) { // この MC を元の座標に戻す this._x = my_x; this._y = my_y; } } ----------------------------------- × の MC が, もし青のエリア(blueMC)との当たり判定で 同じような現象を取るようにしたいとすれば, ---コピペ可能----------------------- // この MC が表示されたとき onClipEvent (load) { // この MC の初期座標を記録 var my_x = this._x; var my_y = this._y; } // この MC がマウスプレスされたとき on (press) { // この MC のドラッグをスタート this.startDrag(); } // この MC からマウスアップされたとき on (release) { // この MC のドラッグをストップ this.stopDrag(); // もし, blueMC と マウス がヒットして "いな" ければ if (!_root.blueMC.hitTest(_root._xmouse, _root._ymouse, true)) { // この MC を元の座標に戻す this._x = my_x; this._y = my_y; } } ----------------------------------- と,なります。 □ が 黄 と対応しているならば,同様に, on (release) 内の if 文 がかわるだけで, // もし, yellowMC と マウス がヒットして "いな" ければ if (!_root.yellowMC.hitTest(_root._xmouse, _root._ymouse, true)) { // この MC を元の座標に戻す this._x = my_x; this._y = my_y; } と,なります。 ※ hitTest 自体は Flash 5 以降で使用できますが,   on (release) など on イベントハンドラが,   MC に使えるのが Flash MX 以降なので,   この回答の対象は Flash MX 以上とさせていただきます。 hitTest は色々な当たり判定が取れるのですが, MC どうしの当たり判定は,簡単にするには, 矩形(四角)どうしの当たり判定になってしまいます。 >> 円グラフの色分けのような ですから, 矩形ではまずいので, MCどうしではなく,MCとマウスカーソルとの当たり判定を取ったのが上のスクリプトです。 もっと複雑な当たり判定や動作をさせたい場合は, 次の URL を参考にしてみてください。 「当たり判定について」 ~インスタンス同士で当たり判定を取る~ http://hakuhin.hp.infoseek.co.jp/main/as/hittest.html#HITTEST_01 「クリック&ドロップ」 http://www17.ocn.ne.jp/~wolves/SCHOOL/lecture/lecS1_5.html

terakura
質問者

お礼

ありがとうございます。できました! まだ何から調べてよいか分かれない状態なので、本当に助かりました。ありがとうございました。

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

関連するQ&A

  • flash ドラッグ&ドロップでフレーム移動

    今晩は、質問させて下さい。 使用osはmac10.6.8/ソフトはFlashCS5.5/アクションスクリプト3.0です。 特定のインスタンス(maru)を別のインスタンス(shikaku)にドラッグ&ドロップした時、指定のフレーム(29フレーム目)に進むスクリプトを教えて頂きたいです。 どうぞご教授お願い申し上げます。

  • FlashMXのグラフィックシンボルが表示されません

    こんばんは。 Flashを使い始めたばかりの初心者です。 本に書いてある通り 「挿入」→「シンボルに変換」→「グラフィック」をチェックして「OK」でグラフィックシンボルを作成後、 「ウインドウ」→「ライブラリ」でステージにシンボルをドラッグすると、○の中に+が入った中心点のマークだけ表示されます。 「ライブラリ」の「アイテム」ステージには+しか表示されません。何故なのでしょう??? ご存知の方、よろしくお願いします。

    • ベストアンサー
    • Flash
  • 場合の数・塗り分けの問題

    添付の地図に関する色の塗り分け問題がよくわからないため、考え方と式、答えを教えてください。 よろしくお願い致します。 問題: 添付の地図において、この地図を色分けする方法について考える。 ただし、隣り合う部分は異なる色を塗るものとする。 (1)異なる6色(赤、青、緑、黄、ピンク、オレンジ)をすべて使って、色分けする方法は何通りあるか。 (2)異なる6色(赤、青、緑、黄、ピンク、オレンジ)を使って、色分けする方法は何通りか。ただし、6色以下の色で塗り分けるものとする。 (3)異なる6色(赤、青、緑、黄、ピンク、オレンジ)から3色を選んで色分けする方法は何通りあるか。 (4)オレンジ以外の異なる5色(赤、青、緑、黄、ピンク)をすべて使って、色分けする方法は何通りか。 また異なる6色(赤、青、緑、黄、ピンク、オレンジ)から5色を選び、その5色すべてを使って色分けする方法は何通りあるか。

  • Ajax Updaterでドラッグアンドドロップ

    正確にはタイトルがおかしいのですが… 現在、商品をドラッグアンドドロップで買い物かごに入れ、 入れられた商品はカート上に表示されるというプログラムをPHP+Ajaxで組んでいます。しかし、ドラッグアンドドロップの機能を実装するところまではいいのですが、それを買い物かごに入れるという動作がうまくいきません。 以下にソースコードを掲載します。 <script type="text/javascript">Droppables.add('lwi_navi_2', {accept:'items',onDrop:function(element){new Ajax.Updater("cart20to40", "index.php", {"method": "get", "parameters": "action=cartAdd& id= ' + encodeURIComponent(element.id) + ' },hoverclass:'nowHover'})</script> index.phpは現在表示しているページです。(カレントファイル) ParamatersのactionのcartAddで読みだされるのは /*カートにドロップされたとき*/ function cartAdd(){ //関数内で使用する配列名を決定 $ArrayName = "cart" + 20 + "to" + 40; //送られてきたドロップエレメンツの名前を区切り文字で配列に収納 $itemName = explode('_',$POST['id']); //配列itemNoの数字部分をint型に変換し収納 $itemId = (int)$itemName(1); //ArrayNameで定義された配列の商品IDと一致する行に1を足す $_SESSION[$ArrayName][$itemId] ++; //この配列を元にカート作成関数を実行 makeCartItem($startAge,$endAge); var_dump($cart20to40); return; } これを実行しても、ページには何の変化もありませんでした。 何か手掛かり及び根本的な考え方の間違えがあれば教えてください。

  • どれが正しいですか?

    私は、青色と赤色と黄色と緑色が好きだ 私は、青色と赤色・黄色・緑色が好きだ 私は、青色と赤色、黄色、緑色が好きだ 私は、青色・赤色・黄色・緑色が好きだ 私は、青色、赤色、黄色、緑色が好きだ 私は、青色・赤色・黄色と緑色が好きだ 私は、青色、赤色、黄色と緑色が好きだ 私は青色と赤色と黄色と緑色が好きだ 私は青色と赤色・黄色・緑色が好きだ 私は青色と赤色、黄色、緑色が好きだ 私は青色・赤色・黄色・緑色が好きだ 私は青色、赤色、黄色、緑色が好きだ 私は青色・赤色・黄色と緑色が好きだ 私は青色、赤色、黄色と緑色が好きだ どれが正しいですか?

  • グラフの色について質問

    折れ線グラフを作っています。項目が4つあります。色分けについて、赤、青、緑を使いましたが、もう一色は何を使うのが良いか教えてください。

  • 体育祭

    私たちの学校では体育祭を赤・青・黄・緑と色分けして戦います。 私は赤組団なんですが、キャラクターが思いつきません。 赤にちなんだいいキャラクターがいれば教えてくださいっ! それと、格好いい四字熟語も教えてくださいっ!

  • Adobe flashソフトを使ってゲームを作りた

    Adobe flashソフトを使ってゲームを作りたいのですが アクションスクリプト(プログラム)がわかりません 内容はドラックアンドドロップです シンボルを1つ作ります。 シンボル名は[block1]にします。 それを画面左に設置します。 そのシンボル[block1]にカーソルを合わせドラッグandドロップして画面右に何個も移動させるプログラミングを教えてください

  • エクセルでセルの色を条件に使いたい

    エクセルの表のなかに、たくさん色分けをしているのですが、 その色分けの色を変更したいと思っています。 ・今赤で塗っているところを緑に、今黄色または黒で塗っているところを青にという ふうに、複数の変更をしたいのですが、どうしたらよいでしょうか。 教えてください。

  • 色について

    赤や、青や、黒は、「○い」と、言うのですが、 黄だけは、「黄色い」と何故言うのでしょうか? それと緑などは、「緑い」とは、何故 言わないでのでしょうか?