DisplayObject
私が呼んでDisplayObject::localToGlobal
いるもののグローバル画面位置(ピクセル単位!)を取得するには、
var o: DisplayObject = ...;
var topLeft: Point = o.localToGlobal( new Point( 0, 0 ) );
topLeft.y
整数値を期待していても、時々、の値が2倍になることに気づきました。考慮しなければならないスケーリングまたは座標系はありますか?
DisplayObject
私が呼んでDisplayObject::localToGlobal
いるもののグローバル画面位置(ピクセル単位!)を取得するには、
var o: DisplayObject = ...;
var topLeft: Point = o.localToGlobal( new Point( 0, 0 ) );
topLeft.y
整数値を期待していても、時々、の値が2倍になることに気づきました。考慮しなければならないスケーリングまたは座標系はありますか?
これは、 の親に適用された変換が原因である可能性がありますDisplayObject
。
DisplayObject
以下を使用して、に影響するすべての変換を見つけることができます。
myDisplayObject.transform.concatenatedMatrix;
これは、表示リストのルートまでターゲットとその親に適用されたすべての変換の結果です。
x
/y
座標とwidth
/height
は、Flashの浮動小数点値です。サブピクセル値(つまり、非整数値)を使用してオブジェクトのサイズを変更/配置することは完全に合法です。
スケーリングに関しては、オブジェクトscaleX
とscaleY
プロパティをクエリして、それらがスケーリングされているかどうかを確認するか、これらの値を強制的に1にすることができます。