ムービークリップがマウスを追いかけるというようにしたいのですが、追いかけるムービークリップが別のシンボルの中にあると座標がずれるようで、このずれをなくしたいのですがどのようにすればよいのでしょうか?
詳しくは、シーン1にシンボル(ただの図形と追いかけてほしいムービー:mc1)を置いて、mc1に下記のスクリプトを書きました。
--------------------------------------------
onClipEvent (load) {
_root.mc1.startDrag(true);
x = _root._xmouse;
y = _root._ymouse;
}
onClipEvent (enterFrame) {
_x += (_root._xmouse-_x)/4;
_y += (_root._ymouse-_y)/4;
}
--------------------------------------------
No.1ベストアンサー
- 回答日時:
結論から書きますと、
onClipEvent(enterFrame)
{
//親の中心点を基準とするマウスカーソルの座標を追いかける
_x += ( _parent._xmouse - _x ) / 4;
_y += ( _parent._ymouse - _y ) / 4;
}
(↑各行頭に全角のスペースが入っています。コピーして使う場合は、全て半角のスペースかタブに置き換えてください。このまま使うとシンタックスエラーになります)
で、いかがでしょう。
------------------------------------------------
ムービークリップの位置を保持する _x と _y プロパティには、親の中心点を基準にした座標が入っています。
ムービークリップ mc1 が他のシンボルの中にある場合、mc1 の座標である _x と _y プロパティには、親シンボルの中心点を ( 0 , 0 ) とする座標が入ります。
一方、マウスカーソルの位置を見るには、一般に _root._xmouse と _root._ymouse プロパティが使われますが、これにはステージの左上を ( 0 , 0 ) とした座標が入っています。
この2つは座標を取る基準が違うので、基準が違うもの同士を参照して座標を決めようとすると、当然、ズレが生じます。
_xmouse と _ymouse プロパティはムービークリップであればどれでも持っているもので、ムービークリップの中心点から見たマウスカーソルの位置が保存されています。
ムービー全体(ステージ)は通常は _root という名前のムービークリップとして扱い、その中心点は左上です。
ステージに配置されているインスタンスは全て _root の子であり、その _x と _y プロパティにはステージの左上を ( 0 , 0 ) とする座標が格納されます。
つまり、_root の _xmouse と _ymouse を見るとステージの左上を基準とするマウスカーソルの位置が分かるので、ステージに配置したムービークリップがマウスカーソルを追いかけるといった作品によく利用されています。
しかし今回は、mc1 はステージに直接ではなく、あるシンボルの中に入っているため、_x と _y には親シンボル(のインスタンス)の _x と _y を基準にした座標が入っています。
あるシンボル内にある mc1 がマウスカーソルを追いかけるには、mc1 が存在するのと同じ座標系、つまり mc1 の親の中心点を基準とするマウスカーソルの座標を見て位置を決めるのが一番簡単です。
これなら同じ基準から見た座標同士なので、ズレも生じません。
_parent は親にあたる階層を指す表現です。
つまり、_parent._xmouse と _parent.ymouse を見ると、mc1 と同じ基準から見たマウスカーソルの位置が分かるというわけです。
DPE様返答ありがとうございますm(__)m
大変参考になりました~(^∇^)
上手く動くようになりました。
本当にありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- UNIX・Linux Kali Linuxで起動できない - Minimal BASH Like Line Editing 1 2022/06/03 13:14
- UNIX・Linux マスターブートレコード方式のbiosを使ったシステムでインストールされたlinuxで/dev/sda 1 2023/05/13 21:23
- UNIX・Linux メールアドレスにホスト名が入らないようにする設定 2 2022/06/23 21:06
- Android(アンドロイド) Androidスマホの時刻の自動同期の頻度を短くしたい 4 2022/12/02 17:29
- Visual Basic(VBA) モードレスでユーザーフォームが開け(表示)ません。 4 2022/09/09 11:05
- アプリ 少しお伺いしたい義が御座いまして、こんなメッセージが出てくるのですが、どうしたら良いでしょうか❓❗ 2 2023/05/23 12:25
- その他(パソコン・スマホ・電化製品) pthonのframeに演算結果(数値)を表示したい 1 2023/06/05 22:08
- Visual Basic(VBA) excel VBA if文について 3 2022/03/27 17:42
- その他(プログラミング・Web制作) pythonで、tkinterとpillowの組み合わせ 2 2022/08/16 17:42
- その他(パソコン・スマホ・電化製品) スマホをroot化したいのですが一番簡単にできる端末教えてください 2 2022/12/02 00:58
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
マウス自体の移動量の取得
-
FLASHのActivescriptでオブジェ...
-
MCの移動,透明の仕方について...
-
プログラミング、アーキテクチ...
-
YOASOBI
-
【VB.NET】別Formのボタンが押...
-
ボタンの上にマウスを置くと虫...
-
フォームのテキストの入力数字...
-
テキストボックスの中身をリセ...
-
テキストボックスにセルの値を...
-
FLASHでの色変更
-
VB.NETで数十行のプログラムを...
-
【Photoshop】レイヤー効果の境...
-
SNMPの標準MIBについて
-
IP Address 入力フォームについて
-
ウインドウハンドルとインスタ...
-
CreateDialogについて
-
VB6.0のHideのバグ?
-
ipconfig /releaseって何ですか?
-
外部ファイルを読み込んでロス...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
マウス自体の移動量の取得
-
楕円の軌道に傾斜をつける方法...
-
画面の範囲選択
-
C言語でのマウスを移動とマウス...
-
MCが放物線を描いて移動
-
[AS3]自動的に画像が重なってい...
-
photoshopで書いた四角の枠の中...
-
VBAで改行の入ったデータの正規...
-
YOASOBI
-
VBScriptでMsgBoxのYesNoボック...
-
プログラミング、アーキテクチ...
-
python ボタンを押すと複数の関...
-
別のアプリケーションのテキス...
-
テキストボックスの中身をリセ...
-
テキストボックスにセルの値を...
-
五芒星は、悪魔崇拝とどういう...
-
else if文の順序を変えることに...
-
変数に256文字以上のテキストを...
-
RPG(AS400)の本、サイトってあ...
-
PYTHONのtkinterについて
おすすめ情報