0

DisplayObject私が呼んでDisplayObject::localToGlobalいるもののグローバル画面位置(ピクセル単位!)を取得するには、

var o: DisplayObject = ...;
var topLeft: Point = o.localToGlobal( new Point( 0, 0 ) );

topLeft.y整数値を期待していても、時々、の値が2倍になることに気づきました。考慮しなければならないスケーリングまたは座標系はありますか?

4

2 に答える 2

2

これは、 の親に適用された変換が原因である可能性がありますDisplayObject

DisplayObject以下を使用して、に影響するすべての変換を見つけることができます。

myDisplayObject.transform.concatenatedMatrix;

これは、表示リストのルートまでターゲットとその親に適用されたすべての変換の結果です。

より詳しい情報。

于 2012-08-27T16:26:55.507 に答える
0

x/y座標とwidth/heightは、Flashの浮動小数点値です。サブピクセル値(つまり、非整数値)を使用してオブジェクトのサイズを変更/配置することは完全に合法です。

スケーリングに関しては、オブジェクトscaleXscaleYプロパティをクエリして、それらがスケーリングされているかどうかを確認するか、これらの値を強制的に1にすることができます。

于 2012-08-27T15:24:28.157 に答える