![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
現在Flashを使って着せ替えのゲームを作っています。
人物に洋服をドラッグドロップ吸着し、吸着しないと元に戻るところまではできるのですが、何着も洋服があると人物上で重なってしまいます。
それを、例えば洋服を着ているところに着物をドロップすると洋服が元にある場所に戻るということはできないのでしょうか。
現在のスクリプトはこのような感じです。
人物=mytarget
洋服のボタンのムービークリップのアクション(シーンに置く前)
on (press) {
this.startDrag();
}
on (release, releaseOutside) {
this.stopDrag(true);
if (_droptarget == "/mytarget") {
this._x = eval(_droptarget)._x;
this._y = eval(_droptarget)._y;
} else {
this._x = oldX;
this._y = oldY;
}
}
シーン上に置いてある洋服のムービークリップ
onClipEvent (load) {
oldX = this._x;
oldY = this._y;
}
ご回答出来る方がいらっしゃれば宜しくお願い致します。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
とても時間がたっていますが…
noname#35109様の回答の内容がとてもわかりやすく、
同じ問題で頭を抱えていた私はすごく助かりました!
ありがとうございました!
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_10.png?e8efa67)
No.1
- 回答日時:
えらく回答が遅くなってしまいましたね。
ここにこのようなご質問があることを今まで全然気づきませんでした。
たまたま「アクションスクリプト」と,コミュニティ内を検索してみて,
始めて今気づいた次第です。
---------------------------------------
onClipEvent (load)
を使われているところから推測して,
Flash 5 以上をお持ちであり,
なおかつ,携帯用 Flash(Flash Lite 1.1以下)の SWF を作ろうとされているわけではありませんね。
スクリプトが古すぎますよ。
よく無事に動作しているなぁと感心しました。
onClipEvent (load) 以外は Flash 4 以下のスクリプトです。
Flash 5 からは ActionScript1.0 となり,
使用を禁止(使用を避ける)スクリプトも混ざっています。
大筋はなるべく書かれていることを尊重したつもりですが,
かなり元のスクリプトに手を加えさせていただきました。
その点ご了承ください。
///////////////////////////////////////////////////
洋服のムービークリップに全てインスタンス名を付けてください。
この説明では,「clothes0」,「clothes1」,「clothes2」 と
clothes という文字列と 0,1,2 という連番を付けておきます。
同様に,たくさんある場合は,
「clothes3」, 「clothes4」…
とインスタンス名を付けて行ってください。
そして,
各洋服ムービークリップ内にあるボタンに,
次のように書けば(コピペすれば)一応うまく行くと思います。
---------------------------------------
on (press) {
this.startDrag();
}
on (release, releaseOutside) {
this.stopDrag();
//
// もし,ターゲットとマウスがヒットしていれば
if (_root.mytarget.hitTest(_root._xmouse, _root._ymouse, true)) {
// 一応全ての洋服を元の位置に戻し
for (i=0; i<=2; i++) {
_root["clothes"+i]._x = _root["clothes"+i].oldX;
_root["clothes"+i]._y = _root["clothes"+i].oldY;
}
// このムービークリップのみターゲットに吸着
this._x = _root.mytarget._x;
this._y = _root.mytarget._y;
} else {
this._x = oldX;
this._y = oldY;
}
}
---------------------------------------
こんな感じです。
_droptarget で押し切ろうかと努力してみましたが,
洋服どうしが重なったときどうしてもうまく動作しません。
swapDepths(); で深度を変えればなんとかなると思いますが,
作られているものがどんなものかわからないため,勝手に深度を変えるのもやめました。
また,
_droptarget はスラッシュシンタックス(/)とセットでないと動作しないという,
完璧に Flash 4 時代の遺物です。
Flash 5 以上ではドットシンタックス(.)を使うべきです。
そうすると,
手っ取り早く使えるのは hitTest (当たり判定) となります。
「当たり判定について」
http://hakuhin.hp.infoseek.co.jp/main/as/hittest …
というわけで,
なるべく元のスクリプトを尊重したつもりですが,
変わった部分が多くなってしましました。
でも,これで Flash 5 らしい,ちゃんとした ActionScript1.0 になったと思います。
Flash MX 以上をお持ちでしたら,
ムービークリップに on (press) など onイベントハンドラが書けますから,
ムービークリップの中に ボタンを作るという手間なことは必要ありません。
こんな感じに1つにまとめられます↓。
-----------------------------------
onClipEvent (load) {
oldX = this._x;
oldY = this._y;
}
on (press) {
this.startDrag();
}
on (release, releaseOutside) {
this.stopDrag();
if (_root.mytarget.hitTest(_root._xmouse, _root._ymouse, true)) {
for (i=0; i<=2; i++) {
_root["clothes"+i]._x = _root["clothes"+i].oldX;
_root["clothes"+i]._y = _root["clothes"+i].oldY;
}
this._x = _root.mytarget._x;
this._y = _root.mytarget._y;
} else {
this._x = oldX;
this._y = oldY;
}
}
-----------------------------------
Flash MX 以上をお持ちでしたら,
一度試してみてください。
ただし,パブリッシュの設定で,Flash Player 6 以上の SWF をパブリッシュする設定にしておかなければ,うまくパブリッシュできませんが。
あと,
[ ] は配列アクセス(演算子)というものです。
eval関数 は今はもうほとんど使えません(Flash Lite を除く)。
使えないので使いません。
全て [ ] ですませるのが普通です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 父親・母親 昨年の実家に帰った時に、自分(子供)が20年以上前に着ていた洋服が実家に残っていて母親から「この洋服 4 2023/01/02 10:49
- 英語 「this is the/my first time~」の文法上の制約について 1 2023/04/06 09:48
- レディース 私は現在中学2年生で身長163cm 体重46.4kg BMIは17.5 で骨格ウェーブです。 私は体 1 2022/08/03 11:53
- 英語 "this day"が当日か今日を表すのかの使い分け方等について 5 2023/08/08 14:29
- ダイエット・食事制限 私は現在中学2年生で身長163cm 体重47.2kg BMIは17.8 で骨格ウェーブです。 私は体 2 2022/08/30 20:48
- メンズ 【試着室】2点まででも外に置いてあるカゴに入れてれば何点でもOKなんでしょうか? 5 2023/08/03 03:19
- 子育て 乳幼児の肌着や洋服はブランド洋品やデパートなど少しお金をかけたほうがいいですか? 西松屋やバースデー 3 2023/05/24 08:33
- レディース 私は一重の小粒目です。 そんな私は洋服が大好きで最近だとHeatherの様な綺麗なお姉さんが着るよう 2 2023/03/29 04:48
- レディース みなさんこんにちわ! これで初めての質問なのですが、、 暖かい目で見守って頂きたいです、!! 私は現 12 2022/08/03 01:30
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
喪服としても使える服
-
切ってしまったタグを元に戻す方法
-
何故夜なのに帽子被っているの...
-
POLOとラルフの違いって?
-
アースレッドを使用して部屋が...
-
洋服の素材表記:VIとEAという素材
-
病院で、先生(医者)の話を聞...
-
職場の女性をそういう目で見る...
-
前後がわからない
-
あなたの貴婦人のイメージを教...
-
小6女子のクリスマスプレゼント
-
Tea for Two は、都内だとどこ...
-
バイトで帽子を被らんといかん...
-
昔はなぜ帽子をかぶっている人...
-
ヴェルサーチに詳しい方教えて...
-
「切り替えし」の英語は?
-
GRLについてお聞きしたいです。...
-
ビジネス服の男性が帽子をかぶ...
-
【傘の柄のビニールははがすも...
-
食事の時に帽子って?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
切ってしまったタグを元に戻す方法
-
POLOとラルフの違いって?
-
「切り替えし」の英語は?
-
病院で、先生(医者)の話を聞...
-
レインコート着ているのに、何...
-
何故夜なのに帽子被っているの...
-
中学生女子です。私横から見る...
-
洋服の素材表記:VIとEAという素材
-
ビジネス服の男性が帽子をかぶ...
-
【傘の柄のビニールははがすも...
-
30代前半女性の洋服ブランドを...
-
バイトで帽子を被らんといかん...
-
脇幅ってどこの事でしょうか?
-
前後がわからない
-
昔はなぜ帽子をかぶっている人...
-
職場の方からの服のお礼
-
頭にタオルを巻いた男性。
-
職場の女性をそういう目で見る...
-
レーヨンやポリエステルは暑い...
-
洗濯について教えて欲しいです!
おすすめ情報