• ベストアンサー

Flash スクリプト集

スクリプト(_droptarget)について調べているのですがなかなか参考になるサイトが見つけられません。 Flash MX 2004のスクリプト集が分かりやすくのっているサイトがありましたら教えてください。

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

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

#1です。 > _droptargetの当たり判定は"マウスカーソル" の位置と > 最上深度のムービークリップのインスタンスで判定を > とっているという事でしょか? そうですよ。 #1に書いた通りです。 もう少し厳密に言うと, ムービークリップをドラッグして動かしたときの "マウスカーソル" とヒットした,ドラッグしているムービークリップは除く最上深度のムービークリップのインスタンスが,_droptarget として得られます。 書けば書くほど何のことかわかりにくくなりますね。 簡単に体感するには,  赤い半透明塗りのムービークリップ  青い半透明塗りのムービークリップ  緑の半透明塗りのムービークリップ この3つをステージ上の別レイヤーに用意します。  □ レイヤー 筆・・・|●| ←赤  □ レイヤー 筆・・・|●| ←青  □ レイヤー 筆・・・|●| ←緑 赤い半透明塗りのムービークリップには#1で書いたスクリプトを書き, 青い半透明塗りのムービークリップ には「targetMC2」というインスタンス名を付け, 緑の半透明塗りのムービークリップ には「targetMC」というインスタンス名を付け, 青と緑は半分くらい重ねて配置します。    □□□□□ ←緑(targetMC)    □□□□□    □■■■■■ ←青(targetMC2)    □■■■■■      ■■■■■      ■■■■■ それでパブリッシュして, 赤い半透明塗りのムービークリップをカーソルの位置に注意しながら,色々ドラッグしてみるとわかります。 半透明にしていると, ムービークリップの下が透けて見えますよね。 ですから,マウスカーソルの下に何があるのか確認しやすいです。 hitTest も同様に同じような感じで色々実験すると理解が深まると思います。 ヘルプや他のサイトには書いていないことや, 書いていてもいまひとつ理解できないときは,とにかく実験です。 実験で体感すると理解できると思います。

furuhosi
質問者

お礼

sassakunさん回答ありがとうございます。 パズルを完成させることができました! 教えてくださったとおり、実際に実験することで理解を深める事ができ、 実験をする事で疑問が「そうだったのか!」に変わり達成感を得ることができました! 本当にありがとうございます!

その他の回答 (1)

noname#35109
noname#35109
回答No.1

えらく古いスクリプトをご存じですね。 _droptarget は Flash 4 時代(1999年)の遺物(残骸的)存在のプロパティです。 スラッシュシンタックスでしかパスを受けつけません。 ですから,書き方もちぐはくで変になります。 また, startDrag() を使ったときに限って, なおかつマウスの座標が重なっている最上深度のムービークリップしか対象にしません。 ---ドラッグするムービークリップに書くスクリプト例------ on (press) { // このムービークリップをドラッグ開始 startDrag(this); } on (release) { // マウスの真下(の最上深度)に _root.targetMC があれば if (_droptarget == "/targetMC") { // targetMC にこの ムービークリップを吸着 this._x = _root.targetMC._x; this._y = _root.targetMC._y; } // そしてドラッグ終了 stopDrag(); } ------------------------------------------ if (_droptarget == "/targetMC") の部分を, if (this._droptarget == "/targetMC") に変えても無駄です。 このようにしても, ムービークリップのドラッグターゲットが _droptarget で得られるわけではなく, ムービークリップをドラッグして動かしたときの "マウスカーソル" とヒットした最上深度のムービークリップのインスタンスが,_droptarget として得られます。 つまり不恰好な上に矛盾したスクリプトになります。 おそらく, Flash 4 → Flash 5 のバージョンアップ(ActionScriptの大変革)の時に見はなされたか, バージョンアップし忘れられたのでしょう。 (私はどうしょうもなくてうやむやに片づけられたのだと推測しています。) ですから, すごく使い勝手が悪く融通が利かないので,普通は使いません。 したがって,参考サイトも少ないのだと思います。 hitTest を使うようにしてください。 それの方が妙なトラブルもなく,色々融通が利くと思います。 当たり判定について http://hakuhin.hp.infoseek.co.jp/main/as/hittest.html

furuhosi
質問者

補足

パズルの一件ではお世話になりました。 _droptargetの参考サイトがない理由が分かりました。かなり古いスクリプトのようですね; 当たり判定についてのサイトを拝見してhitTestの判定については理解できたのですが、_droptargetの当たり判定は"マウスカーソル" の位置と最上深度のムービークリップのインスタンスで判定をとっているという事でしょか? 重ね重ねすみません。

関連するQ&A