モーショングラフィックスで学ぶActionScript − Flash MX − 8.1 重なり判定(MovieClip.hitTest)と配列
[p.219の1行目] 「それでも、入れ子になった子供のMovieClipと位置合わせするのでしたら、座標を変換する方法はあります。」 補足 親のMovieClipから見た対象MovieClipの座標値「_x」「_y」をステージ左上隅(_root)からの座標に変換するには、「MovieClip.localToGlobal」メソッドを使います。 このメソッドの使い方は、少し変わっています。しかも、「ActionScript辞書」の説明を読んでも、初めての人には意味がよくわかりにくいと思われます。この解説を読んだ後に、「ActionScript辞書」を再度ご確認いただくとよいでしょう。 まず、変換の対象となるのが、xy座標そのものではなく、「x」「y」というプロパティを設定したObjectオブジェクトです(「_x」「_y」ではありません。なお、座標値を設定したObjectオブジェクトの利用については、「7.3 MovieClip間で情報を受け渡す」をご参照ください)。
myMovieClip_mcから見たxy座標(0, 0)つまりこのMovieClipの基準点を、ステージ(_root)左上隅からの座標に変換するには、以下のようなスクリプトを記述します。
このメソッドでもうひとつ注意する点は、引数として渡したObjectの「x」「y」プロパティの値が直接変換されるということです。ですから、返還後の座標値を取得するには、変換したObjectの「x」「y」の値にアクセスして取出します。 このメソッドを使って、p.233のドロップ先MovieClipのスクリプトを書替えると、つぎのようになります。これで、ドロップ先MovieClipを他のMovieClipに入れ子にしても、「function」はステージ左上隅から見た座標を返すようになります。
p.233のスクリプトでは、都合よく座標値をoInfoの「x」「y」プロパティとして設定しています。ですから、「MovieClip.localToGlobal」メソッドの変換対象Objectとしてそのまま指定できます。ターゲットパスは、入れ子の親ですから「_parent」を指定します。その後、Objectにこの「function」でもうひとつ必要なプロパティsTypeを追加して、「return」アクションで返しています。 _____ 作成者: 野中文雄 Copyright © 2001-2017 Fumio Nonaka. All rights reserved. |
||||||