初心者のためのFlash ActionScript講座
Flash ActionScript Helper
Home Menu

最終更新日: 2003年7月26日

座標空間

Flashの座標空間

Flashはステージ左上を原点(0,0)とするグローバル座標のほかに、ムービークリップ、ボタン、テキストフィールドのインスタンスごとにローカル座標空間を持っています
インスタンスを直接ステージ上に配置した場合は、考慮する必要はありませんが、入れ子にした子インスタンスの場合は、常に座標空間を意識する必要があります。

下のサンプルムービーを見てください。
mc2(50×50ドット、基準点中央)を入れ子にしたムービークリップmc1(200×200ドット、基準点中央)が、ステージの原点(左上、0,0)から x軸方向に50ドット、y軸方向に50ドット離して配置されています。
mc1、mc2それぞれの_x、_yの値を考えてください。_x、_yはそのムービークリップの基準点の値です。

mc1は直接ステージ上に配置されたムービークリップなので座標空間を意識する必要はありません。mc1の基準点(黄色い四角)は中央なので、ステージ原点からの距離50ドットに自身の半径100ドットを足した150ドットが_x、_yの値となります。

mc2の_x、_yの値はどうでしょうか。 mc2の基準点(赤い四角)も中央です。グローバル座標空間で考えると、mc1の_x、_yに自身の半径25ドットを足した175ドットがmc2の_x、_yの値です。
では実際に、mc2の_x、_yを取得してみましょう。サンプルムービーの「表示」ボタンをクリックしてください。

座標空間のサンプルムービー

結果はご覧のとおりです。ステージ上に直接配置されたmc1は、予想通りグローバル座標の値を返してきます。
しかし、mc2はグローバル座標の値とは異なる値を返しています。この値はどこからくるのでしょう? サンプルムービーをよく観察すると分かりますね。そうです、mc1の基準点からの距離を表しています。
入れ子になった子インスタンスの_x、_yは、親ムービークリップのローカル座標空間の値を返してくるのです。この座標空間の原点(0,0)は、親ムービークリップの基準点です。

下図は、上のサンプルムービーを、mc1の座標空間の値で表したものです。よく確認してください。

mc1の空間座標で表したサンプルムービー各ポイントの座標値
(説明のため少し変形しています)

座標の変換

_x、_y プロパティは、親ムービークリップのローカル座標空間の値を返してきますが、このままでは使いづらいときがありますね。
そこで、Flashではムービークリップに限り、ローカル座標をグローバル座標に変換するMovieClipメソッド MovieClip.localToGlobal を用意しています。また反対にグローバル座標をローカル座標に変換する MovieClip.globalToLocal もあります。使い方は少しややこしいですが、慣れれば大丈夫でしょう。詳しくは「座標の変換」をご覧ください。
ボタンやテキストフィールドには、これらのメソッドは用意されていません。そのような使用法が想定されていないということでしょう。


座標を取得するプロパティ、メソッド

Flashには、座標を取得するプロパティ、メソッドとして、_x、_yプロパティ以外に、ムービークリップ・メソッド MovieClip.getBounds() 、ムービークリップ、ボタン、テキストフィールドのプロパティ _xmouse_ymouse があります。これらを使用するときにも、座標空間を意識する必要があります。

まず、ムービークリップ・メソッド MovieClip.getBounds()。このメソッドは、ムービークリップの xおよび y座標の最小値、最大値を返します。使用時には「 this.getBounds(_root); 」のように、どの座標空間の値を返すか、引数としてターゲットパスを指定します。

次に、ムービークリップ、ボタン、テキストフィールドのプロパティ _xmouse_ymouse 。このプロパティは、マウスの座標を格納しています。使用時には「 mc1._xmouse; 」「 _root._ymouse; 」のように、どの座標空間の値を返すか、ドットの前にターゲットパスを指定します。

_x と _y 、MovieClip.getBounds()、_xmouse と _ymouse、これらが返す値の座標空間をまとめると次のようになります。
 

プロパティ、メソッド

座標空間

_x 、_y

親ムービークリップのローカル座標空間(_parent)

MovieClip.getBounds(MovieClip)

引数で指定したムービークリップのローカル座標空間

_xmouse、_ymouse

参照するインスタンスのローカル座標空間(this)



・関連項目
インスタンスの基準点
インスタンスの座標の取得
ムービークリップの上下左右の座標の取得
マウス座標の取得
座標の変換

(C)2000-2004 Ginga Baba. All rights reserved. お問い合わせ先:ginga@nifty.com
ページTOPへ
Home Menu