アクションスクリプト初心者です。
分からないことは題名の通りなのですが、まずステージの上部1/6にいくつかシンボルが横に並んでいます。例として○、×、□とします。
ステージの下5/6部分は中心から赤・黄・緑の3色に色分けされています。ちょうど円グラフの色分けのような感じです。
○は赤に入るべき部品なのですが、ステージの赤色部分にちゃんとドラッグされるとそのまま貼りつき、違う色の部分にドラッグされた場合は元々シンボルが並んでいた場所に戻る、ということがしたいのです。
何から調べてよいやら・・・という状態で、お手数をおかけしますがどなたか教えてくださると助かります。
宜しくお願い致します。
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 …
「クリック&ドロップ」
http://www17.ocn.ne.jp/~wolves/SCHOOL/lecture/le …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Windows 7 エクセルで重複データから抽出したい 2 2022/05/18 23:31
- ガーデニング・家庭菜園 芝生張り替え後も茶色いまま 1 2023/05/25 07:24
- ウォーターサーバー・浄水器・食器洗い乾燥機 ビルトイン食洗機の水漏れについて 台所でカップ麺にお湯を注いでおいておいたのですが、手があたってしま 5 2023/05/20 19:05
- その他(コンピューター・テクノロジー) マウスで文章をドラッグしてコピーする際に、横一列全てが選択されるのですが、 2 2023/06/17 18:05
- ガーデニング・家庭菜園 芝生張り替え後も茶色いまま(再) 2 2023/05/25 07:56
- エアコン・クーラー・冷暖房機 お知恵をお貸し下さい。 写真、赤線部分から(スポンジのような部分?)から水が滲みてきて、水がポタポタ 4 2022/06/23 11:10
- DIY・エクステリア 塗料について 1 2023/02/03 11:16
- リフォーム・リノベーション 片棟の収め方と通気口はこの考え方でいいでしょうか。 2 2023/06/22 01:23
- ヘアケア・ヘアアレンジ・ヘアスタイル ヘアカラーの補色について 先日髪をハイライトでモノグレージュに染めました。一週間色落ちも含めて楽しめ 2 2023/08/28 13:02
- 防犯・セキュリティ 何ヵ月も盗撮されていて発見機を買いましたが使い方を教えてください 1 2022/04/29 01:11
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
マウス自体の移動量の取得
-
別のアプリケーションのテキス...
-
python ボタンを押すと複数の関...
-
arduino プログラムについて
-
photoshopで書いた四角の枠の中...
-
VBAで改行の入ったデータの正規...
-
UWSCのBTN関数について。
-
YOASOBI
-
テキストボックスにセルの値を...
-
PYTHONのtkinterについて
-
四乗根を英語で言うと・・・
-
アセンブリ言語のcasl2について...
-
改行含むテキストの表示の仕方
-
シンボル化解除の方法
-
else if文の順序を変えることに...
-
時計の:を点滅させたい
-
static関数がmapファイルに載ら...
-
マスクをとるとオーバーフロー...
-
Python でシャットダウンのコマ...
-
VB6.0で、フォームから、別のフ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
マウス自体の移動量の取得
-
正6面体を一定の角度で回転さ...
-
楕円の軌道に傾斜をつける方法...
-
マウスオーバー(クリック)画...
-
MCの移動,透明の仕方について...
-
画面の範囲選択
-
C言語でのマウスを移動とマウス...
-
スライドバーを用いて画面の拡...
-
ボタン化されたMCの移動
-
sinとcosを使って10度毎に線...
-
クリックして文字
-
photoshopで書いた四角の枠の中...
-
VBScriptでMsgBoxのYesNoボック...
-
webページ上、TABフォーカス出...
-
プログラミング、アーキテクチ...
-
VBAで改行の入ったデータの正規...
-
python ボタンを押すと複数の関...
-
YOASOBI
-
RPG(AS400)の本、サイトってあ...
-
別のアプリケーションのテキス...
おすすめ情報