1

オブジェクトから部分的なビットマップを取得しようとしていますが、次の場所から異なる値を取得しています。

object.transform.matrix.tx and object.transform.matrix.ty

v / s

object.getBounds(object.parent).x and object.getBounds(object.parent).y

ビットマップデータの描画中にどちらを使用すべきかわかりません。

bitmapdata.draw(object, <matrix>);

行列のa、b、c、dコンポーネントを追加するには、1,0,0,1(またはアイデンティティ)です。では、matrix.txとmatrix.tyが境界座標と異なるシナリオを誰かが説明できますか?

4

1 に答える 1

1

object.transform.matrix.txobject.xは、他の変換が適用されていない場合に等しい( についても同じy)。の座標に何かを描画しても、 のxおよびyプロパティはobject変化しません。

object.x = 300;
object.y = 300;
object.graphics.beginFill(0);
object.graphics.drawCircle(0,0,100); 

この例で描かれた円の境界矩形-100,-100は から始まりますが、オブジェクトの中心は依然として300,300親の座標空間にあります。getBoundsオブジェクトの領域を参照するようになりました。領域の座標は親の空間に変換され、たまたま200,200.


親の座標空間で行列の移動と境界が異なるのはいつですか?
ほとんどの場合、オブジェクトの境界 (それ自体の座標空間内) が から始まる場合にのみ、それらは同じになります0,0


これは、ドキュメントの例でgetBounds部分的にカバーされています。どちらを使用すべきかはわかりません。オブジェクトをどこに描画する必要があるかによって異なりますが、目的の位置については言及していません。

于 2011-10-11T19:59:15.857 に答える