Flash CS3 ドキュメンテーション |
|||
| ActionScript 2.0 リファレンスガイド > ActionScript クラス > MovieClip > localToGlobal (MovieClip.localToGlobal メソッド) | |||
public localToGlobal(pt: Object ) : Void
pt オブジェクトをムービークリップ内 (ローカル) の座標からステージ (グローバル) の座標に変換します。
MovieClip.localToGlobal() メソッドを使用すると、指定された x 座標と y 座標を、特定のムービークリップの左上隅を基準にした相対値から、ステージの左上隅を基準にした相対値に変換できます。
最初に、x と y の 2 つのプロパティを持つ汎用オブジェクトを作成する必要があります。これらの x と y の値は (これら x、y と呼ぶ必要があります) はムービークリップの左上隅を基準としているためローカル座標と呼ばれます。x プロパティは、ムービークリップの左上隅からの水平オフセットを表します。つまり、そのポイントが基準点からどれだけ右に配置されているかを示します。たとえば、x = 50 の場合、そのポイントは左上隅から 50 ピクセル右に配置されていることになります。y プロパティは、ムービークリップの左上隅からの垂直オフセットを表します。つまり、そのポイントが基準点からどれだけ下に配置されているかを示します。たとえば、y = 20 の場合、そのポイントは左上隅から 20 ピクセル下に配置されていることになります。次のコードでは、これらの座標を持つ汎用オブジェクトを作成します。
var myPoint:Object = new Object(); myPoint.x = 50; myPoint.y = 20;
代わりに、オブジェクトを作成し、同時にリテラル Object 値を使用して値を割り当てることもできます。
var myPoint:Object = {x:50, y:20};
ローカル座標を使用して point オブジェクトを作成したら、その座標をグローバル座標に変換できます。localToGlobal() メソッドは、パラメータとして受け取る汎用オブジェクトの x 値と y 値を変更するため、値を返しません。このメソッドは、特定のムービークリップ (ローカル座標) を基準にした値から、ステージ (グローバル座標) を基準にした値に変更します。
たとえば、ムービークリップを作成してポイント (_x:100, _y:100) に配置し、ムービークリップの左上隅に近いポイント (x:10, y:10) を表すローカルポイントを localToGlobal() メソッドに渡す場合、このメソッドでは、その x 値と y 値をグローバル座標、この場合 (x:110, y:110) に変換する必要があります。この変換が行われるのは、x 座標と y 座標がこの時点で、ムービークリップの左上隅でなくステージの左上隅を基準にして表現されているためです。
ムービークリップの座標は、MovieClip の x 値と y 値を設定する MovieClip のプロパティである _x と _y を使用して表現されていました。ただし、汎用オブジェクトでは、アンダースコアなしの x と y を使用します。次のコードでは、x 座標と y 座標をグローバル座標に変換します。
var myPoint:Object = {x:10, y:10}; // create your generic point object
this.createEmptyMovieClip("myMovieClip", this.getNextHighestDepth());
myMovieClip._x = 100; // _x for movieclip x position
myMovieClip._y = 100; // _y for movieclip y position
myMovieClip.localToGlobal(myPoint);
trace ("x: " + myPoint.x); // 110
trace ("y: " + myPoint.y); // 110
サブクラスを作成することにより、MovieClip クラスのメソッドおよびイベントハンドラを拡張できます。
対応バージョン : ActionScript 1.0、Flash Player 5
pt:Object - x 座標と y 座標をプロパティとして指定し、Object クラスを使用して作成したオブジェクトの名前または識別子。
次の例では、オブジェクト my_mc の x 座標と y 座標を、ムービークリップ内の座標 (ローカル) からステージ座標 (グローバル) に変換します。インスタンスをクリックしてドラッグした後に、ムービークリップの中心点が反映されます。
this.createTextField("point_txt", this.getNextHighestDepth(), 0, 0, 100, 22);
var mouseListener:Object = new Object();
mouseListener.onMouseMove = function() {
var point:Object = {x:my_mc._width/2, y:my_mc._height/2};
my_mc.localToGlobal(point);
point_txt.text = "x:"+point.x+", y:"+point.y;
};
Mouse.addListener(mouseListener);
my_mc.onPress = function() {
this.startDrag();
};
my_mc.onRelease = function() {
this.stopDrag();
};
この例で使用している MovieClip.getNextHighestDepth() メソッドには Flash Player 7 以降が必要です。SWF ファイルにバージョン 2 のコンポーネントがある場合は、MovieClip.getNextHighestDepth() メソッドではなく、バージョン 2 のコンポーネントの DepthManager クラスを使用します。
globalToLocal (MovieClip.globalToLocal メソッド)
このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート
現在のページ: http://livedocs.adobe.com/flash/9.0_jp/main/00001936.html