A: 

If the bitmap is contained inside the container, any transformations applied to the container should also be applied to the things contained within it.

I wouldn't apply any transformations to the bitmap, I'd apply them just to the container.

Richard
All transformations are applied to the container, my question is specifically about the transformation matrix when drawing a bitmap and how to compensate for the rotation during draw.
WillyCornbread
Why would rotating bitmap be any different?Off the top of my head though, I'm thinking the rotation is off a different "center point", so you might want to check the alignment
Daniel
The issue is not with rotation of the bitmap - when drawing a new bitmap from source bitmapdata, transformations(scale,rotation, etc) to the source aren't taken into account. You pass in a transformation matrix to transform the source. This transformation matrix with regards to the .tx and .ty values when the source is rotated is what I'm having trouble with. Thanks. -b
WillyCornbread
A: 

I'm not sure I've understood your question completely, but it's worth nothing that if you rotate a 100x200 object 90 degrees it will give 200x100 for width and height.

There's a number of ways to get around this, but I normally use scaleX/scaleY, as they are not affected by rotations, and multiply those with the original width/height of the clip.

grapefrukt
A: 

I haven't grasped what you're trying to do 100% either, but I get the basic issue that the rotation you've applied is changing the tx/ty you need to use when applying your transform matrix.

On that basis perhaps this helps: http://www.senocular.com/flash/tutorials/transformmatrix/ Look at the section on "Manipulating Transformation Matrices", particularly the part about ignoring translation values with deltaTransformPoint. It's AS2, but hopefully the principles might get you on the right track.

BinarySolo
Thanks - I'll take a look. I'm going back and rewriting some of this to see if I can simplify my test case and get closer to a solution. I'll update if I figure it out...
WillyCornbread
+1  A: 

FYI for anyone that might come along with similar problems. I solved my issue by explicitly setting the transformation matrix values and in this specific order scale, rotation then translation.

This was instead of copying the transformation matrix from the container. So instead of

var tMatrix:Matrix = _imgContainer.transform.matrix;

I am setting the values directly in this order:

tMatrix.scale (_imgContainer.scaleX, _imgContainer.scaleY);
tMatrix.rotate (_imgContainer.rotation * (Math.PI/180));
tMatrix.translate (_imgContainer.x, _imgContainer.y);

Thanks for the effort -

b

WillyCornbread
This problem occurs because when you do a translation, the point about which rotations takes place changes according to that translation.The order of operations you've used here is NOT really a general purpose solution; instead it is specific to the order of transformations the user applied, which your capture code must exactly mirror (albeit with different values).
Dustman
Dustman - your assertion that the order of translations is strictly dependent on the order that the user transformed the source bitmap container is incorrect. Regardless of the order in which the scale, position and rotation of the source is applied by the user, the transformation order in the code above consistently renders correctly. -b
WillyCornbread